Sujet détaillé - Maison de la Simulation

publicité
Proposition de sujet de thèse
Titre : méthode Monte-Carlo à l’aide d’accélérateurs de calculs
Encadrant : Fausto Malvagi (CEA/DEN/DANS/DM2S/SERMA)
Directeur : Christophe Calvin (CEA/DEN/DANS/DM2S)
Introduction
Historiquement, il existe deux classes de codes Monte‐Carlo (M‐C) pour le transport des particules : les code M‐C de neutronique, et les code M‐C pour la physique des hautes énergies. En physique des hautes énergies, ces codes permettent de transporter toutes les particules connues, à toutes les énergies, en utilisant des modèles théoriques pour décrire les interactions entre particules (MCNP‐X [1][2] et Geant41 [4][5] sont des exemples de ce type de code). En neutronique, les contraintes sur la précision des calculs de radioprotection et de criticité sont très fortes, et les codes Monte‐Carlo comme TRIPOLI‐4® (ou MCNP‐5 [3][2]) par exemple utilisent par conséquent des évaluations internationales pour la description des interactions des neutrons et des gammas que ces codes permettent de transporter à des énergies inférieures à 20 MeV. Récemment, de nombreuses applications sont apparues qui nécessitent l’utilisation simultanée de chacun de ces deux types de code, comme l’étude des antineutrinos issus des réacteurs, la spallation ou la physique pour le médical. S’il est possible d’imaginer coupler les deux codes (par exemple Geant4 et TRIPOLI‐4®) afin de couvrir un grand nombre d’applications, il n’en reste pas moins que les temps de calcul longs inhérents à l’utilisation des codes Monte‐Carlo pour certaines applications peuvent constituer un frein à leur utilisation. Ainsi, l’utilisation des techniques les plus récentes en matière de calcul haute performance est elle cruciale pour ce type de code. D’un côté, de par sa nature, la méthode Monte Carlo est naturellement parallélisable et cet aspect a été largement utilisé par la plupart des codes Monte Carlo en transport neutronique que cela soit par un parallélisme de tâches en mémoire distribuée ou en mémoire partagée [1][7][8][11]. D’autre part, et plus récemment, au‐delà du parallélisme naturel de tâches, un deuxième niveau de parallélisme est étudié avec une décomposition des données, qui offre l’avantage de distribuer également la mémoire et plus uniquement les calculs [9][10][15][16]. Avec l’avènement des accélérateurs de calcul, notamment les GPU (Graphics Processing Unit) de nouvelles recherches ont eu lieu sur l’utilisation de ce type d’architectures pour accélérer le processus Monte Carlo, que cela soit sur la phase de suivi des trajectoires des particules dans la géométrie (particle tracking) ou sur la partie calcul des informations physiques (énergie déposée,…) [12][13][14]. 1
Geant4 est plus précisément une bibliothèque « d’outils » permettant la construction d’application Monte-Carlo
1
L’utilisation des accélérateurs de calcul est prometteuse en termes de gains potentiels sur le temps de calcul. Cependant, le comportement stochastique par essence des trajectoires est souvent antinomique avec la régularité nécessaire des traitements de données notamment sur GPU [18]. Les études réalisées sont souvent sur des applications restreintes du transport Monte Carlo (transport photonique, applications en radiothérapie …). En outre les modèles d’architecture et de programmation des accélérateurs graphiques en termes entrainent des limitations. Le modèle de programmation privilégié est le langage CUDA et seulement des portions de codes peuvent être déportées sur accélérateurs [17]. Très récemment, Intel a proposé de nouvelles architectures de calcul, « Many Integrated Core » (MIC) avec le Xeon Phi [19] qui offre l’avantage d’être basées sur des processeurs de type x86 et donc avec des modèles de programmation compatibles avec des processeurs standards. Il est cependant nécessaire d’utiliser les différents niveaux de « parallélisme », multithreading et vectorisation, pour tirer parti des performances de ce type d’architecture [20]. Outre les langages et modèles de programmations classiques (C/C++, Fortran, MPI, OpenMP), de nouveaux langages, comme Cilk+ ou TBB, compatibles avec les CPUs standards, sont utilisables et offrent la possibilité d’exprimer plus simplement les différents niveaux d’accélérations. Au‐delà de l’utilisation « simple » d’un processeur standard et d’un accélérateur, de manière couplée ou non, l’apport de multiples accélérateurs de calculs (GPU ou MIC) en parallèle sont également des options à étudier pour accélérer de manière massive le transport Monte Carlo. Contributionsattendues
Dans le cadre de cette thèse, nous nous proposons d’étudier l’apport des accélérateurs de type Intel MIC pour le transport de particules par la méthode Monte Carlo. Les différentes étapes de la simulation seront à étudier (tracking, scoring, ….) ainsi que les meilleures approches en termes de modèles de programmation afin d’assurer le meilleur compromis possible entre performances et pérennité des modèles utilisés. Une démarche incrémentale sera utilisée avec une validation des différentes étapes en termes de précision des calculs et des performances apportées par les nouvelles approches par rapport à des calculs de références avec le code de transport TRIPOLI4. Une attention particulière devra être apportée sur l’architecture logicielle du code développé permettant notamment de prendre en compte la pérennité indispensable du code de calcul. Dans un deuxième temps, ces études seront étendues à l’utilisation de plusieurs accélérateurs de calcul en parallèle pour aboutir à un transport Monte Carlo sur un cluster d’accélérateurs de type Intel Xeon Phi
2
Références
[1] https://rsicc.ornl.gov/codes/ccc/ccc7/ccc‐740.html [2] Gregg W. McKinney, "Physics and Algorithm Enhancements for a Validated MCNPX Monte Carlo Simulation Tool", ARI Grantees Conference, Washington, DC, April 6‐9, 2009 [3] F.B. Brown, B.C. Kiedrowski, J.S. Bull, J.T. Goorley, H.G. Hughes, M.R. James, "Advances in the Development and Verification of MCNP5 and MCNP6", International Conference on Nuclear Criticality, Edinburgh, Scotland, 19‐22 September 2011 [4] http://geant4.web.cern.ch/geant4/ [5] Nuclear Instruments and Methods in Physics Research A 506 (2003) 250‐303 [6] P.K. Romano and B. Forget, “The OpenMC Monte Carlo particle transport code”, Annals of Nuclear Energy, 51, C, 274‐281 (2013). [7] P.K. Romano, B. Forget and F. Brown, “Towards scalable parallelism in Monte Carlo particle transport codes using remote memory access”, Progress in nuclear science and technology, 2, 670‐675 (2011). [8] A.R. Siegel, K. Smith, P.K. Romano, B. Forget and K.G. Felker, “Multi‐core performance studies of a Monte Carlo neutron transport code”, International Journal of High Performance Computing Applications (2013. [9] P.K. Romano, A.R. Siegel, B. Forget and K. Smith, “Data decomposition of Monte Carlo particle transport simulations via tally servers”, Journal of Computational Physics, 252, 0, 20‐36 (2013). [10] R. Procassini, M. O’Brien and J. Taylor, “Load balancing of parallel Monte Carlo transport calculations”, International Conference on Mathematics and Computation (2005). [11] W.R. Martin et al “Monte Carlo photon transport on shared memory and distributed memory parallel processors”, International Journal of High Performance Computing Applications, 1.3, 57‐74 (1987). [12] J. Tickner, “Monte Carlo simulation of X‐ray and gamma‐ray photon transport on a graphics‐processing unit,” Comp. Phys. Comm., 181, 1821–1832 (2010). [13] F. W. L. Jahnke, J. Fleckenstein and J. Hesser, “GMC: a GPU implementation of a Monte Carlo dose calculation based on Geant4,” Phys. Med. Biol., 57, 1217–1229 (2012). [14] George Xu, Tianyu Liu, Lin Su, Xining Du, Matthew Riblett, Wei Ji., “An Update of ARCHER, a Monte Carlo Radiation Transport Software Testbed for Emerging Hardware Such as GPUs”, American Nuclear Society Annual Meeting, Atlanta, GA, June 16‐20, 2013. [15] J.Liang, Y.Cai, K.Wang et al., “Implementation of Domain Decomposition and Data Decomposition Algorithms in RM Ccode”, Joint International Conference on Supercomputing in Nuclear Applications and Monte Carlo 2013, (2013). [16] D. Dureau, G. Poëtte, “Hybrid parallel programming models for AMR neutron Monte Carlo transport”, Joint International Conference on Supercomputing in Nuclear Applications and Monte Carlo 2013, (2013). [17] “CUDA Toolkit,” https://developer.nvidia.com/cuda‐toolkit/. [18] “Control Flow Divergence,” http://developer.download.nvidia.com/CUDA/training/Inst_limited_kernels_Oct2011.pdf. [19] James Reinders, “An overview of programming for Intel Xeon Phi processors and Intel Xeon Phi coprocessors” (2012) [20] C. Calvin, F. Ye and S. Petiton, “The Exploration of Pervasive and Fine‐Grained Parallel Model Applied on Intel Xeon Phi Coprocessor”, 8th International Conference on P2P, Parallel, Grid, Cloud and Internet Computing (2013). [21] “Intel Xeon Phi Coprocessors System Software Developers Guide” (2012) 3
Téléchargement