JMASM Algorithms and Code Pseudo-Random Number Generators for Vector Processors and Multicore Processors

Large scale Monte Carlo applications need a good pseudo-random number generator capable of utilizing both the vector processing capabilities and multiprocessing capabilities of modern computers in order to get the maximum performance. The requirements for such a generator are discussed. New ways of avoiding overlapping subsequences by combining two generators are proposed. Some fundamental philosophical problems in proving independence of random streams are discussed. Remedies for hitherto ignored quantization errors are offered. An open source C++ implementation is provided for a generator that meets these needs.

[1]  Scott Lathrop,et al.  Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis , 2011, International Conference on High Performance Computing.

[2]  Mutsuo Saito,et al.  A PRNG Specialized in Double Precision Floating Point Numbers Using an Affine Transition , 2009 .

[3]  Pierre L'Ecuyer,et al.  Random numbers for simulation , 1990, CACM.

[4]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[5]  Takuji Nishimura,et al.  Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator , 1998, TOMC.

[6]  Takuji Nishimura,et al.  Tables of 64-bit Mersenne twisters , 2000, TOMC.

[7]  Pierre L'Ecuyer,et al.  Uniform random number generation , 1994, Ann. Oper. Res..

[8]  Pierre L'Ecuyer,et al.  Random numbers for parallel computers: Requirements and methods, with emphasis on GPUs , 2015, Math. Comput. Simul..

[9]  J. Cernák Digital generators of chaos , 1996 .

[10]  Emprise Y.K. Chan Benchmarks for Intel MIC Architecture , 2014 .

[11]  Lih-Yuan Deng,et al.  STATISTICAL JUSTIFICATION OF COMBINATION GENERATORS , 1997 .

[12]  William H. Press,et al.  Numerical Recipes: The Art of Scientific Computing , 1987 .

[13]  Lev N. Shchur,et al.  PRAND: GPU accelerated parallel random number generation library: Using most reliable algorithms and applying parallelism of modern GPUs and CPUs , 2013, Comput. Phys. Commun..

[14]  Pierre L'Ecuyer,et al.  Improved long-period generators based on linear recurrences modulo 2 , 2004, TOMS.

[15]  Karl Entacher,et al.  Bad subsequences of well-known linear congruential pseudorandom number generators , 1998, TOMC.

[16]  William H. Press,et al.  Numerical recipes: the art of scientific computing, 3rd Edition , 2007 .

[17]  Harald Niederreiter,et al.  Monte-Carlo and Quasi-Monte Carlo Methods 1998: Proceedings of a Conference held at the Claremont Graduate University, Claremont, California, USA, June 22-26, 1998 , 1997 .

[18]  David R. C. Hill,et al.  Reliable Initialization of GPU-enabled Parallel Stochastic Simulations Using Mersenne Twister for Graphics Processors , 2010, ArXiv.

[19]  Stephan Mertens,et al.  Pseudo Random Coins Show More Heads Than Tails , 2003 .

[20]  Mark Goresky,et al.  Efficient multiply-with-carry random number generators with maximal period , 2003, TOMC.

[21]  Makoto Matsumoto,et al.  SIMD-Oriented Fast Mersenne Twister: a 128-bit Pseudorandom Number Generator , 2008 .

[22]  Ümit V. Çatalyürek,et al.  Performance Evaluation of Sparse Matrix Multiplication Kernels on Intel Xeon Phi , 2013, PPAM.

[23]  Pierre L'Ecuyer,et al.  Tables of linear congruential generators of different sizes and good lattice structure , 1999, Math. Comput..

[24]  K. Popper,et al.  Conjectures and refutations;: The growth of scientific knowledge , 1972 .

[25]  Pierre L'Ecuyer,et al.  Combined generators with components from different families , 2003, Math. Comput. Simul..

[26]  George Marsaglia,et al.  Random Number Generators , 2003 .

[27]  David R. C. Hill,et al.  Pseudo-Random Number Generation on GP-GPU , 2011, 2011 IEEE Workshop on Principles of Advanced and Distributed Simulation.

[28]  Pierre L'Ecuyer,et al.  Implementing a random number package with splitting facilities , 1991, TOMS.

[29]  George Chrysos,et al.  Intel® Xeon Phi coprocessor (codename Knights Corner) , 2012, 2012 IEEE Hot Chips 24 Symposium (HCS).

[30]  Alistair P. Rendell,et al.  High-Performance Pseudo-Random Number Generation on Graphics Processing Units , 2011, PPAM.

[31]  L. Billard,et al.  Computer Science and Statistics: Proceedings of the Sixteenth Symposium on the Interface. , 1986 .

[32]  William H. Press,et al.  Numerical recipes in C. The art of scientific computing , 1987 .

[33]  James Demmel,et al.  IEEE Standard for Floating-Point Arithmetic , 2008 .

[34]  Pierre L'Ecuyer,et al.  Distribution properties of multiply-with-c arry random number generators , 1997, Math. Comput..

[35]  L. Devroye Non-Uniform Random Variate Generation , 1986 .

[36]  Alexander K. Hartmann,et al.  Random number generators for massively parallel simulations on GPU , 2012, The European Physical Journal Special Topics.

[37]  Mutsuo Saito,et al.  Variants of Mersenne Twister Suitable for Graphic Processors , 2010, TOMS.

[38]  Vadim Demchik,et al.  Pseudo-random number generators for Monte Carlo simulations on ATI Graphics Processing Units , 2010, Comput. Phys. Commun..

[39]  Mark A. Moraes,et al.  Parallel random numbers: As easy as 1, 2, 3 , 2011, 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[40]  Jerome Spanier,et al.  Dynamic creation of pseudorandom number generators , 2000 .

[41]  M. J. Durst Using linear congruential generators for parallel random number generation , 1989, WSC '89.

[42]  J. E. Glynn,et al.  Numerical Recipes: The Art of Scientific Computing , 1989 .

[43]  K. Popper,et al.  Conjectures and refutations;: The growth of scientific knowledge , 1972 .

[44]  Pierre L'Ecuyer,et al.  TestU01: A C library for empirical testing of random number generators , 2006, TOMS.

[45]  Donald E. Knuth,et al.  The art of computer programming. Vol.2: Seminumerical algorithms , 1981 .

[46]  Stephan Mertens,et al.  Random numbers for large scale distributed Monte Carlo simulations , 2006, Physical review. E, Statistical, nonlinear, and soft matter physics.

[47]  Agner Fog,et al.  Chaotic Random Number Generators with Random Cycle Lengths , 2001 .