Toward Accurate and Highly Performant Simulations with BRODA® SOBOL Quasi-random Number Generator

Empowered by Intel® oneAPI Math Kernel Library

Quasi-random number generators are widely used in the different AI algorithms (e.g. Particle Swarm Optimization) and in quasi Monte Carlo simulations (popular in finance and risk-management) as a sources of low discrepancy random number sequences. The Sobol’ sequence produced by SobolSeq65536 generator (developed by BRODA® company) satisfies uniformity conditions (Property A and Property A’) that leads to better convergence of numerical integration and outperforms all other known quasi-random number generators both in speed and accuracy [2].

Intel® oneAPI Math Kernel Library (oneMKL) is the fastest and most-used math library for Intel®-based systems. It accelerates math processing routines, increases application performance, and reduces the development time [5]. SobolSeq65536_MKL is the recently developed version of SobolSeq65536 sequence generator with integrated oneMKL inside. SobolSeq65536_MKL uses the direction numbers of SobolSeq65536 so that it has the same statistical properties. oneMKL significantly enhances BRODA® Sobol’s sequence generation performance on the Intel® Hardware that is a critical characteristic for the massive simulations, and also let SobolSeq65536 generator to be executed on Intel® Xe Graphics hardware throw oneMKL DPC++ APIs.

Statistical Properties of SobolSeq65536 and SobolSeq65536_MKL Generators

Sobol’s low discrepancy sequence produced by SobolSeq65536 generator has better statistical properties than the output sequences of the other known generators [2]. Results of comparison BRODA’s SobolSeq65536 generator and Sobol’ sequence generator with direction numbers of S. Joe and F. Y. Kuo [3] (Joe&Kuo) for the well-known financial benchmarks “European option pricing” and “Asian option pricing” are discussed below.

We consider pricing of the European option call with the following parameters: S0 = 100, K= 100,  = 0.0,  = 0.2, T = 1y. The theoretical Black-Scholes price at the money call (ATM) is  = 7.965667455. For the standard algorithm the price of the option is presented as d-dimensional integral:

Speaking about “Asian option pricing” we consider pricing of a geometric average Asian call option with the following parameters S0 = 100, K= 100,  = 0.05,  = 0.2, T = 0.5y. For the standard algorithm the price of a geometric average Asian call option can be written as the following d-dimensional integral:

Root mean square error (RMSE) integration results (averaged over 20 runs) for “European option pricing” and “Asian option pricing” benchmarks are represented below (dimension d =1024):

Figure 1. RMSE integration of the ATM call.

Figure 2. RMSE integration of the Asian call.

Comparison of BRODA’s and Joe&Kuo generators shows that Joe&Kuo’s generator is much less efficient than BRODA’s generator in the case of the Standard scheme and it’s even less efficient than the random number generator (MC method). In the case of the Brownian bridge (BB) both generators show similar performance.

 

Performance Acceleration by oneMKL

oneMKL Vector Statistics component provides a set of commonly used random number generators including implementation of Sobol’ quasi-random number generator (with Intel® CPUs and Xe Graphics support) which also accepts registration of user-defined parameters during the initialization [6]. This fact formed the basis of Intel® oneMKL integration into the BRODA’s SobolSeq65536 sequence generator.

SobolSeq65536_MKL (SobolSeq65536 with Intel® oneMKL underneath) has two variants: “single-point” version with a point-by-point access, and a “block” version, that allows to obtain several Sobol’ vectors in a single function call.

Performance results (averaged over 10 runs) for 2^20 quasi-random numbers produced by SobolSeq65536 and SobolSeq65536_MKL are presented in Figure 3:

 

 

 

Figure 3. Performance comparison of SobolSeq65536 and SobolSeq65536_MKL.

 

It follows from the presented charts that a “block” version of SobolSeq65536_MKL significantly outperforms SobolSeq65536. The best acceleration of SobolSeq65536_MKL versus SobolSeq65536 was achieved in cases of 10 dimensions – 4X, 100 dimensions – 4X, 1000 dimensions – 7.9X, 16384 – 27.7X, 65535 dimension – 52.7X.

Summary

BRODA’s SobolSeq65536 sequence generator is a 65536-dimensional Sobol’ low discrepancy sequence generator which outperforms all other known generators both in speed and sequence statistical properties. SobolSeq65536_MKL is a recently developed version of the SobolSeq65536 sequence generator with integrated oneMKL.  Based on the introduced performance results the “block mode” of SobolSeq65536_MKL generator has significant performance benefit in comparison with the “single point” mode because it helps to utilize vectorization opportunities of the Intel® hardware.

 

 

 

 

 

References

[1] BRODA Ltd. http://www.broda.co.uk (2020).

[2] Sobol’ I., Asotsky D., Kreinin A., Kucherenko S. Construction and Comparison of High-Dimensional Sobol’ Generators, Wilmott, Nov:64-79, 2011, http://www.broda.co.uk/doc/HD_SobolGenerator.pdf

[3] Joe S., Kuo FY. Constructing Sobol sequences with better two-dimensional projections. SIAM Journal on Scientific Computing. 2008;30(5):2635-54.

[4] Bianchetti M., Kucherenko S., Scoleri S., Pricing and Risk Management with High-Dimensional Quasi Monte Carlo and Global Sensitivity Analysis, Wilmott, July, pp. 46-70, 2015, http://www.broda.co.uk/doc/PricingRiskManagement_Sobol.pdf

[5] Intel® oneAPI Math Kernel Library – https://software.intel.com/content/www/us/en/develop/tools/math-kernel-library.html

[6] Intel® oneAPI Math Kernel Library Vector Statistics – Sobol quasi-random number generator. https://software.intel.com/content/www/us/en/develop/documentation/mkl-vsnotes/top/testing-of-basic-random-number-generators/basic-random-generator-properties-and-testing-results/sobol.html

 

Optimization Notice

 

Intel’s compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor- dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Performance varies by use, configuration, and other factors. Learn more at www.Intel.com/PerformanceIndex.