
402 12. Monte Carlo Techniques
For the best results, an MC simulator is well advised to consult the resident
mathematical expert for the most suitable generator and computing platforms
with respect to the application at hand.
Certainly, the user should compare application results as obtained for several
random number generators. Indeed, L’Ecuyer likens generators to cars [716]: no
single model nor size of an automobile can possibly be a universal choice. Good
expert advice can be obtained by examining Pierre L’Ecuyer’s website (presently
at www.iro.umontreal.ca/∼lecuyer). Certainly, given today’s computationally-
intensive biomolecular simulations, it is advisable to use sequences with long
periods. Combined multiplicative linear congruential generators are good choices.
See [716] for good recommendations. See also [607, pp. 76–78] for an efficient
FORTRAN implementation of a good combination MLCG used for DNA work,
though with a small period by today’s standards (10
18
).
Generators particularly suitable for parallel machines are also available [559,
985], characterized by different streams of variates produced by good seeding
algorithms and variations in the parameters of the underlying recursion for-
mulas. See the SPRNG scalable library package (Scalable Parallel Random
Number Generation) targeted for large-scale parallel Monte Carlo applications:
sprng.cs.fsu.edu, for software. The package can be used in C, C++, and Fortran
and has been ported to most major computer platforms.
Box 12.4: Accidental Relationship Between Simulation Protocol and Generator
Structure (Ising Model)
Ferrenberg et al. [392] used different generators in the context of simulating an Ising
model, a model characterized by an abrupt, temperature-dependent transition from an
ordered to a disordered state. The states, characterized by the spin directionality of the
particles, were generated by an algorithm termed Wolff that determines the flips of a
cluster on the basis of a random number generator. Surprisingly, the researchers found
that the correct answer was approximated far better by the 32-bit multiplicative linear
congruential generator SURAND, well recognized to have lattice-structure defects. So
why does the apparently-superior shift register generator produce systematically incorrect
results — energies that are too low and specific heats that are too high?
An explanation to these observations came upon inspection of the Wolff algorithm.
Namely, subtle correlations in the random number sequence affect the Wolff algorithm in
a specific manner! If the high order bits are zero, they will remain zero according to the
spin generation algorithm. This in turn leads to a bias in the cluster size generated and
hence the type of equilibrium structures generated.
The main message from this work was a note of caution on the effect of subtle cor-
relations within random number generators on the system generation algorithms used for
simulating the physical system. This suggests that not only should a generator be tested
on its own; it should be tested together with the algorithm used in the MC simulation to
reduce the possibility of artifacts.