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 and Restrictions


SPRNG is available on Oakley Cluster. The versions currently available at OSC are:

Version Oakley
2.0 X*
* Current default version

You can use module spider sprng to view available modules for a given machine. Feel free to contact OSC Help if you need other versions for your work.


SPRNG is available to all OSC users without restriction.

Publisher/Vendor/Repository and License Type

Florida State Univerity, Open source


Usage on Oakley

Set-up on Oakley

Initalizing the system for use of SPRNG is dependent on the system you are using and the compiler you are using. To configure your environment for use of SPRNG 2.0 on Oakley, use the following command: module load sprng/2.0. You can use module avail sprng to view available modules on Oakley.

Note: SPRNG is dependent on the compiler and mpi module and may not be supported for all combinations.

Building With SPRNG 2.0 on Oakley

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

$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

Fields of Science: