Computational stochastic approaches (Monte Carlo methods) based on 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. SPRNG provides 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.
Availability & Restrictions
SPRNG is available to all OSC users without restriction.
The following versions of sprng are available on OSC systems:
To configure your environment for use of SPRNG 1.0 on Glenn, use the following command:
module load sprng
To configure your environment for use of SPRNG 2.0 on Glenn, use the following command:
module load sprng2
To configure your environment for use of SPRNG 2.0 on Oakley, use the following command:
module load sprng/2.0
Note: SPRNG is dependent on the compiler and mpi module and may not be supported for all combinations.
Building With SPRNG 1.0 and 2.0
Once SPRNG 1.0 is loaded, the following environment variables will be defined for use with compilation tools:
||Include path for SPRNG header files|
||Library path and library for CMRG generator|
||Library path and library for LCG generator|
||Library path and library for 64-bit LCG generator|
||Library path and library for LFG generator|
||Library path and library for MLFG generator|
Alternativly, when SPRNG 2.0 is loaded, the following variables will be defined:
||Include path for SPRNG 2.0 header files|
||Library path and library for SPRNG 2.0 generators|