
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 To cite this version: 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. Software Engineering [cs.SE]. Université Blaise Pascal - Clermont-Ferrand II, 2013. En- glish. NNT : 2013CLF22383. tel-01980715 HAL Id: tel-01980715 https://tel.archives-ouvertes.fr/tel-01980715 Submitted on 14 Jan 2019 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Contributions to parallel stochastic simulation: Application of good software engineering practices to the distribution of pseudorandom streams in hybrid Monte-Carlo simulations by Jonathan Passerat-Palmbach A Thesis submitted to the Graduate School of Engineering Sciences of the Blaise Pascal University - Clermont II in fulfilment to the requirements for the degree of Docteur of Philosophy in Computer Science Supervised by David R. C. Hill at the LIMOS laboratory - UMR CNRS 6158 publicly defended on October, 11th 2013 Committee: Reviewers: Pr. Michael Mascagni - Florida State University, USA Pr. Stéphane Vialle - Supélec, Campus de Metz, France Supervisor: Pr. David R. C. Hill - Blaise Pascal University, France Chairman: Pr. Alain Quillot - Blaise Pascal University, France Examiners: Pr. Pierre L’Ecuyer - Montreal University, Canada Pr. Makoto Matsumoto - Hiroshima University, Japan Dr. Bruno Bachelet - Blaise Pascal University, France Dr. Claude Mazel - Blaise Pascal University, France 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 Process- ing 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 pseudo- random 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 paral- lel 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 solu- tions, 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 stochas- tic 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. Keywords: Pseudorandom Number Generation (PRNG); High Performance Com- puting (HPC); Software Engineering; Stochastic Simulation; Graphics Processing Units (GPUs); GPU Programming; Automatic Parallelization Acknowledgements / Remerciements “Anyone who ever gave you confidence, you owe them a lot. — Truman Capote, Breakfast at Tiffany’s First of all, I’d like to thank all the members of my committee for having accepted to evaluate my work, read this thesis and attend my defence. Merci à David, mon directeur de thèse, qui a été si présent durant ces 3 années (et même avant). Il a su trouver la bonne formule pour guider mon travail et me permettre d’atteindre mes objectifs, tant professionnels que personnels. Son soutien permanent en fait un proche que j’ai besoin de quitter pour grandir, mais envers qui ma reconnaissance est sans limite. Dans le même esprit, je tiens à évoquer Laurent, mon entraîneur qui me suit depuis tant d’années, qui m’a emmené là où je suis sportivement et humainement. Je lui associe mes succès présents et futurs, et où que je sois, il restera une présence inamovible pour mon équilibre. Après avoir évoqué mes 2 “pères spirituels”, je ne peux qu’évoquer mon père, qui croit tellement en moi depuis toujours, qui m’a donné goût au voyage et à la découverte, et dont le regard sur ce que je fais est si important pour moi. À ton tour, mère, de recevoir mes pensées. Toi qui m’a poussé vers le sport étant jeune, et qui aujourd’hui est un soutien sans faille, peu importe mes résultats ou mes performances, tout ce que tu fais pour moi n’a pas de prix. Je me tourne à présent vers les personnes qui ont guidé mes choix, m’ont passionné et donné envie d’aller dans cette direction plutôt qu’une autre. Je pense à Guénal, François, Sylvie, Michel, Olivier, Édith, Murielle, Philippe et Alain. Mais aussi les “grands frères” : Paul, Paul (encore), Romain, Guillaume et Julien. iv Acknowledgements / Remerciements Cette thèse ne serait pas là sans mes amis présents au quotidien, au travail, à l’entraînement et pour les extras, merci à vous tous de me supporter moi et mon emploi du temps. Un hommage donc à Guillaume, futur associé potentiel, doctorant, machine à écrire et pokéfan; Florian, compagnon de voyage, de billard et de débat philosophiques, dont l’hyperactivité m’épuiserait presque parfois; Jean-Baptiste, mon binôme de toujours, dans les mauvais mais surtout les très bons moments; Lorena, qui m’a donné sa confiance, et fait preuve d’une patience infinie; Nicolas, que j’aime même s’il contribue à tuer des gens, expert en discussion par boîte vocales interposées; Thomas, que j’ai découvert sur le tard, mais qui me fait partager son expérience et surtout ses bonnes histoires; Nicolas (l’autre), soirée foot ou soirée tout court, même délires, mêmes histoires, parfait! Sébastien, ancien co-bureau, actuel co-détenteur du record de présence au labo une veille de Noël; Nathalie, dont je loue la capacité à nous supporter jour après jour; Luc, source intarissable de connaissances informatiques et cascadeur amateur; Jonathan, co-auteur du “bijou”, qui m’a transmis un échantillon de sa rigueur légendaire (petit jeu : il y a un double espace dans ce document); Pierre, le jeune, co-bureau plein d’avenir et de talent, a révélé en moi une vocation d’agent immobilier; Romain, ma conscience, même parti je me demande toujours ce que tu penserais; Clément, mon petit frère, polyglotte notoire dans certains champs lexicaux; Christine, que je ne vois que trop peu souvent; Hélène, cuisinière hors-pair, toujours proche de moi malgré la distance; Benoît, premier contact humain sur le campus, premier retard en cours, toujours là; Faouzi, ami des biologistes, déménageur amateur à mes côtés; Wajdi, my bro! ou Dracula, compagnon de nuit au labo, prétend être tunisien, même si tout le monde sait qu’il est norvégien; Yannick, mon premier stagiaire, développeur de talent, globe-trotter, ogre à sushi; Isaure, ma jumelle, pas besoin de parler pour savoir ce qu’il en est; Lionel, éclaireur de tous les chemins que j’emprunte, apprenti-jardinier; Cédrick, l’homme qui défie la chance, me suivrait jusqu’au bout du monde pour se casser un membre; David, mon exemple de motivation, travaille sans relâche mais trouve toujours du temps pour m’emmener dans des soirées improbables; Romina, ces 10 années de correspondance me donnent l’impression que tu es si proche ma Suissesse; Mathilde, fauve insaisissable parfois, énervante souvent, passionnante tout le temps; Audrey, y’a-t-il quelque chose au-delà de meilleure amie pour représenter ton importance ? Sarah, qui a visiblement su trouver les mots et l’accent pour se faire une place, étonne-moi aussi longtemps que tu le souhaites. Je tiens à présent à remercier mes collègues de travail à l’ISIMA, au LIMOS ou dans d’autres équipes, avec une pensée particulière pour Claude, Bruno et Ivan qui ont joué un rôle majeur dans le travail que je présente. Merci aussi à Loïc, Antoine, Firmin, Violaine, Romuald, Christophe, Corinne, Susan, Béatrice, Françoise et Séverine pour Acknowledgements / Remerciements v leur soutien et leur bonne humeur qui ont rendu les journées de travail (et les nuits pour certains) très agréables. Dédicace au passage à tous ceux qui n’ont pas cru en moi, preuve s’il en faut qu’on ne gagne pas à tous les coups. Pour Elles, je laisse parler Baudelaire. Vous que dans votre enfer mon âme a poursuivies, Pauvres sœurs, je vous aime autant que je vous plains, Pour vos mornes douleurs, vos soifs inassouvies, Et les urnes d’amour dont vos cœurs sont pleins. Un mot enfin pour tous ceux que, pressé par le temps, j’ai oublié de citer mais qui ont compté tout au long de mon parcours.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages254 Page
-
File Size-