ThreadLocalMRG32k3a: A Statistically Sound Substitute to Pseudorandom Number Generation in Parallel Java Applications
Résumé
Parallel And Distributed Simulations (PADS) become more and more spread since
scientists always want more accurate results in the shortest time. PADS are often sensitive to
several parameters, and when they own a stochastic component, one has to ensure he knows how
to correctly deal with randomness in a parallel application. This point can appear to be very
tricky for non-experts, who might be tempted to move this part of the simulation aside. Several
software efforts have been produced in various programming languages to help developers handle
pseudorandom streams partitioning in PADS. However, these tools remain third-party libraries
that need to be integrated in already existing applications, and that might be hardly swappable.
The latest release of the Java Development Kit (JDK 7) tries to tackle this problem with a new
class called ThreadLocalRandom. The latter is in charge of safe pseudorandom number generation
across Java threads. The present work studies the pros and cons of this approach, and introduces
ThreadLocalMRG32k3a, an alternative to ThreadLocalRandom that shows better results in terms
of generation speed and statistical quality. ThreadLocalMRG32k3a respects the same Application
Programming Interface (API) as ThreadLocalRandom, thus enabling clients to use it in place of
its JDK counterpart at no cost.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...