The Scalable Parallel Random Number Generators Library (SPRNG)

A project of the Department of Computer Science and the School of Computational Science at Florida State University.

      Computational stochastic approaches (Monte Carlo methods) based on the random sampling are becoming extremely important research tools not only in their "traditional" fields such as physics, chemistry or applied mathematics but also in social sciences and, recently, in various branches of industry. An indication of importance is, for example, the fact that Monte Carlo calculations consume about one half of the supercomputer cycles. One of the indispensable and important ingredients for reliable and statistically sound calculations is the source of pseudo random numbers. The goal of our project is to develop, implement and test a scalable package for parallel pseudo random number generation which will be easy to use on a variety of architectures, especially in large-scale parallel Monte Carlo applications.

      SPRNG 1.0 provides the user the various SPRNG random number generators each in its own library. For most users this is acceptable, as one rarely uses more than one type of generator in a single program. However, if the user desires this added flexibility, SPRNG 2.0 provides it. In all other respects, SPRNG 1.0 and SPRNG 2.0 are identical. Both versions only uses the GNU Multi Precision (GMP) package for one of their generators. SPRNG 3.0 uses GMP for all generators. SPRNG 4.0 is a C++ version with the GMP package removed. It is not backwards compatible with any of the previous SPRNG versions, except for its default FORTRAN interface. SPRNG 5.0 updated the configuration and compilation steps, added TestU01 support, and had some smaller updates. Except for the pack/unpack functions, it is backwards compatible only with SPRNG 4.0+.

A list of SPRNG users can be found here.

Creative Commons License
SPRNG is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.