Algorithm 806: SPRNG: a scalable library for pseudorandom number generation

In this article we present background, rationale, and a description of the Scalable Parallel Random Number Generators (SPRNG) library. We begin by presenting some methods for parallel pseudorandom number generation. We will focus on methods based on parameterization, meaning that we will not consider splitting methods such as the leap-frog or blocking methods. We describe, in detail, parameterized versions of the following pseudorandom number generators: (i) linear congruential generators, (ii) shift-register generators, and (iii) lagged-Fibonacci generators. We briefly describe the methods, detail some advantages and disadvantages of each method, and recount results from number theory that impact our understanding of their quality in parallel applications. SPRNG was designed around the uniform implementation of different families of parameterized random number generators. We then present a short description of SPRNG. The description contained within this document is meant only to outline the rationale behind and the capabilities of SPRNG. Much more information, including examples and detailed documentation aimed at helping users with putting and using SPRNG on scalable systems is available at htt;//sprng.sc.fsu.edu. In this description of SPRNG we discuss the random-number generator library as well as the suite of tests of randomness that is an integral part of SPRNG. Random-number tools for parallel Monte Carlo applications must be subjected to classical as well as new types of empirical tests of randomness to eliminate generators that show defects when used in scalable envionments.

[1]  Michael Mascagni Parallel Linear Congruential Generators with Prime Moduli , 1998, Parallel Comput..

[2]  István Deák,et al.  Uniform random number generators for parallel computers , 1990, Parallel Comput..

[3]  Michael Mascagni Serial and Parallel Random Number Generation , 1999 .

[4]  Vattulainen,et al.  Physical tests for random numbers in simulations. , 1994, Physical review letters.

[5]  Michael Mascagni,et al.  A Fast, High Quality, and Reproducible Parallel Lagged-Fibonacci Pseudorandom Number Generator , 1995 .

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

[7]  Harald Niederreiter,et al.  Random number generation and Quasi-Monte Carlo methods , 1992, CBMS-NSF regional conference series in applied mathematics.

[8]  Ted G. Lewis,et al.  Generalized Feedback Shift Register Pseudorandom Number Algorithm , 1973, JACM.

[9]  H. Niederreiter Low-discrepancy and low-dispersion sequences , 1988 .

[10]  Alan M. Ferrenberg,et al.  Monte Carlo simulations: Hidden errors from "good" random number generators. , 1992, Physical review letters.

[11]  A. De Matteis,et al.  Controlling Correlations in Parallel Monte Carlo , 1995, Parallel Comput..

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

[13]  Makoto Matsumoto,et al.  Twisted GFSR generators , 1992, TOMC.

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

[15]  Richard P. Brent,et al.  Uniform random number generators for supercomputers , 1992 .

[16]  S. Tezuka Uniform Random Numbers: Theory and Practice , 1995 .

[17]  Jeffrey C. Lagarias,et al.  Computing n(X) the meissel-lehmer method , 1985 .

[18]  Y. Maday,et al.  Analysis of spectral projectors in one-dimensional domains , 1990 .

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

[20]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[21]  W. Schmidt Equations over Finite Fields: An Elementary Approach , 1976 .

[22]  J. L. Selfridge,et al.  Factorizations of b[n]±1, b=2, 3, 5, 6, 7, 10, 11, 12 up to high powers , 1985 .

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

[24]  Michael Mascagni,et al.  Implementation of a portable and reproducible parallel pseudorandom number generator , 1994, Proceedings of Supercomputing '94.

[25]  A. Matteis,et al.  Parallelization of random number generators and long-range correlations , 1988 .

[26]  G. Marsaglia,et al.  Matrices and the structure of random number sequences , 1985 .

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

[28]  Peter Grassberger,et al.  On correlations in “good” random number generators , 1993 .

[29]  Beale Exact distribution of energies in the two-dimensional ising model. , 1996, Physical review letters.

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

[31]  Miron Livny,et al.  Condor-a hunter of idle workstations , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[32]  Michael Mascagni Some Methods of Parallel Pseudorandom Number Generation , 1999 .

[33]  Lauwerens Kuipers,et al.  Uniform distribution of sequences , 1974 .

[34]  A. De Matteis,et al.  A class of parallel random number generators , 1990, Parallel Comput..

[35]  S. K. Park,et al.  Random number generators: good ones are hard to find , 1988, CACM.

[36]  Takashi Kato,et al.  On a nonlinear congruential pseudorandom number generator , 1996, Math. Comput..

[37]  Joël Rivat,et al.  Computing pi(x): the Meissel, Lehmer, Lagarias, Miller, Odlyzko method , 1996, Math. Comput..

[38]  Michael Mascagni,et al.  Techniques for Testing the Quality of Parallel Pseudorandom Number Generators , 1995, PPSC.

[39]  A. De Matteis,et al.  Long-range correlations in linear and nonlinear random number generators , 1990, Parallel Comput..

[40]  Michael Mascagni,et al.  Parallel Pseudorandom Number Generation Using Additive Lagged-Fibonacci Recursions , 1995 .

[41]  Shu Tezuka,et al.  Uniform Random Numbers , 1995 .

[42]  James L. Massey,et al.  Shift-register synthesis and BCH decoding , 1969, IEEE Trans. Inf. Theory.

[43]  Harald Niederreiter,et al.  On a new class of pseudorandom numbers for simulation methods , 1994 .

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

[45]  Paul Coddington,et al.  TESTS OF RANDOM NUMBER GENERATORS USING ISING MODEL SIMULATIONS , 1996 .

[46]  Joël Rivat,et al.  Computing psi(x) , 1998, Math. Comput..

[47]  G. Marsaglia Random numbers fall mainly in the planes. , 1968, Proceedings of the National Academy of Sciences of the United States of America.

[48]  Burton J. Smith,et al.  Pseudo-random trees in Monte Carlo , 1984, Parallel Comput..

[49]  W. Selke,et al.  Cluster-flipping Monte Carlo algorithm and correlations in good' random number generators , 1993 .

[50]  George Marsaglia,et al.  In: Applications of Number Theory to Numerical Analysis , 1972 .

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

[52]  Jun Makino,et al.  Lagged-Fibonacci Random Number Generators on Parallel Computers , 1994, Parallel Comput..

[53]  Solomon W. Golomb,et al.  Shift Register Sequences , 1981 .

[54]  Harald Niederreiter,et al.  Introduction to finite fields and their applications: List of Symbols , 1986 .

[55]  I Vattulainen,et al.  Framework for testing random numbers in parallel calculations. , 1999, Physical review. E, Statistical physics, plasmas, fluids, and related interdisciplinary topics.

[56]  J. Ilja Siepmann,et al.  Monte carlo methods in chemical physics , 1999 .

[57]  R. Tausworthe Random Numbers Generated by Linear Recurrence Modulo Two , 1965 .

[58]  Ora E. Percus,et al.  Random Number Generators for MIMD Parallel Processors , 1989, J. Parallel Distributed Comput..

[59]  M. Mascagni,et al.  Random number generators for parallel applications , 1999 .