Contributions to parallel stochastic simulation: Application of good software engineering practices to the distribution of pseudorandom streams in hybrid Monte-Carlo simulations

Jonathan Passerat-Palmbach 1
1 Axe 1 - Modelling and Simulation
LIMOS - Laboratoire d'Informatique, de Modélisation et d'optimisation des Systèmes
Abstract : The race to computing power increases every day in the simulation community. A few years ago, scientists have started to harness the computing power of Graphics Processing Units (GPUs) to parallelize their simulations. As with any parallel architecture, not only the simulation model implementation has to be ported to the new parallel platform, but all the tools must be reimplemented as well. In the particular case of stochastic simulations, one of the major element of the implementation is the pseudorandom numbers source. Employing pseudorandom numbers in parallel applications is not a straightforward task, and it has to be done with caution in order not to introduce biases in the results of the simulation. This problematic has been studied since parallel architectures are available and is called pseudorandom stream distribution. While the literature is full of solutions to handle pseudorandom stream distribution on CPU-based parallel platforms, the young GPU programming community cannot display the same experience yet. In this thesis, we study how to correctly distribute pseudorandom streams on GPU. From the existing solutions, we identified a need for good software engineering solutions, coupled to sound theoretical choices in the implementation. We propose a set of guidelines to follow when a PRNG has to be ported to GPU, and put these advice into practice in a software library called ShoveRand. This library is used in a stochastic Polymer Folding model that we have implemented in C++/CUDA. Pseudorandom streams distribution on manycore architectures is also one of our concerns. It resulted in a contribution named TaskLocalRandom, which targets parallel Java applications using pseudorandom numbers and task frameworks. Eventually, we share a reflection on the methods to choose the right parallel platform for a given application. In this way, we propose to automatically build prototypes of the parallel application running on a wide set of architectures. This approach relies on existing software engineering tools from the Java and Scala community, most of them generating OpenCL source code from a high-level abstraction layer.
Type de document :
Thèse
Distributed, Parallel, and Cluster Computing [cs.DC]. Université Blaise Pascal - Clermont-Ferrand II, 2013. English
Liste complète des métadonnées

Littérature citée [177 références]  Voir  Masquer  Télécharger

https://tel.archives-ouvertes.fr/tel-00858735
Contributeur : Jonathan Passerat-Palmbach <>
Soumis le : lundi 23 septembre 2013 - 15:39:25
Dernière modification le : jeudi 11 janvier 2018 - 06:27:13

Identifiants

  • HAL Id : tel-00858735, version 3

Citation

Jonathan Passerat-Palmbach. Contributions to parallel stochastic simulation: Application of good software engineering practices to the distribution of pseudorandom streams in hybrid Monte-Carlo simulations. Distributed, Parallel, and Cluster Computing [cs.DC]. Université Blaise Pascal - Clermont-Ferrand II, 2013. English. 〈tel-00858735v3〉

Partager

Métriques

Consultations de la notice

1197

Téléchargements de fichiers

808