URNG: A portable optimization technique for software applications requiring pseudo-random numbers

Abstract Research software involving stochastic behaviour often requires millions of random numbers. In addition to the quality of the pseudo-random number generator (PRNG), the speed of the algorithm and the ease of its implementation are common practical aspects. In this work we will discuss how to optimize the access speed to random numbers independently from the generation algorithm. We propose an additional implementation technique in order to speed up any kind of PRNG taking into account the capacities of current computers and microcomputers. The speed of our solution stems from the classical unrolling optimization technique, it is named the URNG technique (unrolled random number generator). Random numbers are first generated in source code, then precompiled and stored inside the RAM of inexpensive computers at the executable loading time. With this technique random numbers need to be computed only once. The URNG technique is compliant with parallel computing. Limits and effects on speed and sensitivity are explored over four computer generations with a simple Monte Carlo simulation. Every research field using stochastic computation can be concerned by this software optimization technique which is currently limited to applications requiring not more than a few hundred millions of pseudo-random numbers.

[1]  Jürgen Lehn,et al.  A non-linear congruential pseudo random number generator , 1986 .

[2]  A. Uhl,et al.  Optimization of random number generators: efficient search for high-quality LCGs , 2001 .

[3]  J. Eichenauer-Herrmann Statistical independence of a new class of inversive congruential pseudorandom numbers , 1993 .

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

[5]  Donald Ervin Knuth,et al.  The Art of Computer Programming, Volume II: Seminumerical Algorithms , 1970 .

[6]  F. A. Seiler,et al.  Numerical Recipes in C: The Art of Scientific Computing , 1989 .

[7]  D. E. Hill,et al.  An algorithmic model for invasive species: Application to Caulerpa taxifolia (Vahl) C. Agardh development in the North-Western Mediterranean Sea , 1998 .

[8]  L. Afflerbach,et al.  Criteria for the assessment of random number generators , 1990 .

[9]  P. D. Coddington,et al.  Analysis of random number generators using Monte Carlo simulation , 1993, cond-mat/9309017.

[10]  Claude Mazel,et al.  Simulation of the mollusc Ascoglossa Elysia subornata population dynamics: application to the potential biocontrol of Caulerpa taxifolia growth in the Mediterranean Sea , 2000 .

[11]  Paul Coddington,et al.  Random Number Generators for Parallel Computers , 1997 .

[12]  Peter Hellekalek,et al.  A note on pseudorandom number generators , 1997 .

[13]  P. Hellekalek Good random number generators are (not so) easy to find , 1998 .

[14]  T. Ala‐Nissila,et al.  Physical models as tests of randomness. , 1995, Physical review. E, Statistical physics, plasmas, fluids, and related interdisciplinary topics.

[15]  James E. Gentle Computer implementation of random number generators , 1990 .

[16]  David R. C. Hill,et al.  Neural-network metamodelling for the prediction of Caulerpa taxifolia development in the Mediterranean sea , 2000, Neurocomputing.

[17]  I. D. Hill,et al.  An Efficient and Portable Pseudo‐Random Number Generator , 1982 .

[18]  P. Hellekalek,et al.  Inversive pseudorandom number generators: concepts, results and links , 1995, Winter Simulation Conference Proceedings, 1995..

[19]  Pierre L'Ecuyer,et al.  Combined Multiple Recursive Random Number Generators , 1995, Oper. Res..

[20]  Kenneth G. Hamilton,et al.  Acceleration of RANLUX , 1997 .

[21]  Chih Jeng Kenneth Tan,et al.  The PLFG parallel pseudo-random number generator , 2002, Future Gener. Comput. Syst..

[22]  I. D. Hill,et al.  Correction: Algorithm AS 183: An Efficient and Portable Pseudo-Random Number Generator , 1982 .

[23]  Peter Hellekalek Inversive pseudorandom number generators: concepts, results and links , 1995, WSC '95.

[24]  David R. Hill,et al.  Object-Oriented Analysis and Simulation , 1996 .

[25]  Jürgen Eichenauer-Herrmann Explicit inversive congruential pseudorandom numbers: the compound approach , 2005, Computing.

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

[27]  Chih Jeng Kenneth Tan,et al.  Efficient Parallel Pseudo-random Number Generation , 2000, International Conference on Parallel and Distributed Processing Techniques and Applications.

[28]  Michael Mascagni,et al.  Testing parallel random number generators , 2003, Parallel Comput..

[29]  Pierre L'Ecuyer,et al.  Efficient and portable combined random number generators , 1988, CACM.