A Survey and Empirical Comparison of Modern Pseudo-Random Number Generators for Distributed Stochastic Simulations (2005)
AuthorsSchoo, Marcus, Pawlikowski, Krzysztof, McNickle, Donald C.show all
Distributed stochastic simulations has become a popular tool for evaluating and testing complex stochastic dynamic systems. However there is some concern about the credibility of the final results of such simulation studies . One of the important issues which need to be properly addressed for ensuring validity of the final results from any simulation study is application of an appropriate source of randomness. In the case of distributed stochastic simulation, the quality of the final results is highly dependent on the underlying parallel Pseudo-Random Number Generator (PRNG). Parallel PRNGs (PPRNGs) with the required empirical, analytical and deterministic properties are not trivial to find [9, 23, 10]. However, much research has resulted in several generators which we consider to be of high quality [6, 23, 24, 28, 32]. The effectiveness of simulations however depends not only on their accuracy but also on their efficiency and so simulations are also reliant on the speed and flexibility of these PPRNGs. In this paper, without a loss of generality, we examine the required features of modern PPRNGs from the point of view of their possible applications in Multiple Replications in Parallel (MRIP) paradigm of stochastic simulation. Having surveyed the most recommended generators of this class, we test their implementations in C and C++. The generators considered include: the combined multiple recursive generator MRG32k3a [6, 31], dynamic creation of Mersene Twisters  and the SPRNG Multiplicative Lagged-Fibonacci Generator (MLFG) . For the purpose of comparison we 1 also test a pLab combined Explicit Inverse Congruential Generator (cEICG) [9, 10]. Their performance is compared from the point of view of their initialization and generation times. Our tests show that initialization can be completed most quickly by MLFG and most slowly by Dynamic Creation. Generation of random numbers was done most quickly by Dynamic Creation’s Mersenne Twisters and most slowly by the cEICG.