SPRNG

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:

Version Glenn Oakley
1.0 X  
2.0 X X

Usage

Set-up

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:

Variable Function
$SPRNG_INCLUDE Include path for SPRNG header files
$SPRNG_CMRG Library path and library for CMRG generator
$SPRNG_LCG Library path and library for LCG generator
$SPRNG_LCG64 Library path and library for 64-bit LCG generator
$SPRNG_LFG Library path and library for LFG generator
$SPRNG_MLFG Library path and library for MLFG generator

Alternativly, when SPRNG 2.0 is loaded, the following variables will be defined:

VARIABLE Function
$SPRNG_INCLUDE Include path for SPRNG 2.0 header files
$SPRNG_LIBS Library path and library for SPRNG 2.0 generators

Further Reading

See Also

Supercomputer: 
Service: 
Fields of Science: