Random number generators input
This page discusses how to configure random number generators (RNG) in Walker and RNGTest.
Requirements
- Any control file setup that needs one or more RNGs must contain an
rngs...endblock. This is used to enable and configure one or more RNGs. - The
rngs...endblock must appear before any reference to an RNG. - The
rngs...endblock consists of a list of<rngname>...endblocks, where<rngname>is a placeholder for the name of the RNG to be enabled and configured. Currently, three different libraries are interfaced: Intel's Math Kernel Library (MKL), RNGSSE, and Random123. See also the page on RNGTest. The first part of<rngname>is the library,mkl,rngsse, orr123, followed by an underscore,_, followed by the name of the particular RNG from the given library. - Each
<rngname>...endblock expects a different syntax, depending on what options are available for (and interfaced with) the given RNG.
Configuration of MKL VSL RNGs
All RNGs provided by MKL can be configured to be initialized using a user-specified seed, and use a user-specified uniform_method, gaussian_method, beta_method, and gamma_method, each used to control the algorithm used for the various distribution generators. For more details on the available options for these keywords, see the on-screen help from the executable, e.g.,
walker -H uniform_method
Configuration of RNGSSE RNGs
All RNGs provided by the RNGSSE library can be configured to be initialized using a user-specified sequence length by the seqlen keyword. For more details on the available options for the seqlen keyword, see the on-screen help from the executable, e.g.,
walker -H seqlen
Configuration of Random123 RNGs
The RNGs provided by the Random123 library that are hooked up are ThreeFry and Philox. They can be configured to be initialized using a user-specified seed with the seed keyword.
Configuring random number generators
Here is an example control file block configuring multiple generators.
rngs
mkl_mcg59
seed 2134
uniform_method accurate
end
mkl_r250 seed 1 end
mkl_mcg31 end
mkl_mrg32k3a seed 0 end
rngsse_mrg32k3a end
rngsse_gq58.4
seqlen long
end
r123_threefry end
end