Archived: 30 January 2004
Published in
Proc. of Workshop on Java for Parallel
and Distributed Computing, Santa Fe, April 2004.
© Copyright IEEE.
Random number generators are one of the most common numerical library functions used in scientific applications. The standard random number generator provided within Java is fine for most purposes, however it does not adequately meet the needs of large-scale scientific applications, such as Monte Carlo simulations. Previous work has addressed some of these problems by extending the standard java.util.Random API and providing an implementation that includes a choice of several different generator algorithms. One issue that was not addressed in this work was concurrency. The standard Java random number generator uses synchronized methods to support the use of the generator across multiple Java threads, however this is a sequential bottleneck for parallel applications. Here we present a proposal for further extending the standard API to support parallel generation of random number streams, which we have implemented in JAPARA, a Java Parallel Random Number Generator Library for high-performance computing.
Keywords: Random number generators, Java, parallel computing.