Massively Parallel Cartesian Discrete Ordinates Method for Neutron Transport Simulation Salli Moustafa
Total Page:16
File Type:pdf, Size:1020Kb
Massively Parallel Cartesian Discrete Ordinates Method for Neutron Transport Simulation Salli Moustafa To cite this version: Salli Moustafa. Massively Parallel Cartesian Discrete Ordinates Method for Neutron Transport Sim- ulation. Other [cs.OH]. Université de Bordeaux, 2015. English. NNT : 2015BORD0408. tel- 01379686v2 HAL Id: tel-01379686 https://tel.archives-ouvertes.fr/tel-01379686v2 Submitted on 14 Oct 2016 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. THÈSE PRÉSENTÉE À L’UNIVERSITÉ DE BORDEAUX ÉCOLE DOCTORALE DE MATHÉMATIQUES ET D’INFORMATIQUE Par Salli MOUSTAFA POUR OBTENIR LE GRADE DE DOCTEUR SPÉCIALITÉ : INFORMATIQUE Massively Parallel Cartesian Discrete Ordinates Method for Neutron Transport Simulation Soutenue le : 15 décembre 2015 Après avis des rapporteurs : Michael A. Heroux Senior scientist, Sandia National Laboratories Alain Hébert . Professor, École Polytechnique de Montréal Devant la commission d’examen composée de : Michael A. Heroux Senior scientist, Sandia National Laboratories Examinateur Alain Hébert . Professor, Ecole Polytechnique de Montréal . Examinateur Raymond Namyst . Professor, Université de Bordeaux . Président du jury Laurent Plagne . Research scientist, EDF R&D . Encadrant industriel Pierre Ramet . Assistant professor, Université de Bordeaux . Directeur de Thèse Jean Roman . Professor, INRIA and Bordeaux IPB . Directeur de Thèse 2015 iii SN cartésien massivement parallèle pour la simulation neutron- ique Résumé : La simulation haute-fidélité des cœurs de réacteurs nucléaires nécessite une évaluation précise du flux neutronique dans le cœur du réacteur. Ce flux est modélisé par l’équation de Boltzmann ou équation du transport neutronique. Dans cette thèse, on s’intéresse à la résolution de cette équation par la méthode des ordonnées discrètes (SN) sur des géométries cartésiennes. Cette méthode fait intervenir un schéma d’itérations à source, incluant un algorithme de balayage sur le domaine spatial qui regroupe l’essentiel des calculs effectués. Compte tenu du très grand volume de calcul requis par la réso- lution de l’équation de Boltzmann, de nombreux travaux antérieurs ont été consacrés à l’utilisation du calcul parallèle pour la résolution de cette équation. Jusqu’ici, ces algo- rithmes de résolution parallèles de l’équation du transport neutronique ont été conçus en considérant la machine cible comme une collection de processeurs mono-cœurs indépen- dants, et ne tirent donc pas explicitement profit de la hiérarchie mémoire et du parallélisme multi-niveaux présents sur les super-calculateurs modernes. Ainsi, la première contribu- tion de cette thèse concerne l’étude et la mise en œuvre de l’algorithme de balayage sur les super-calculateurs massivement parallèles modernes. Notre approche combine à la fois la vectorisation par des techniques de la programmation générique en C++, et la program- mation hybride par l’utilisation d’un support d’exécution à base de tâches: PaRSEC. Nous avons démontré l’intérêt de cette approche grâce à des modèles de performances théoriques, permettant également de prédire le partitionnement optimal. Par ailleurs, dans le cas de la simulation des milieux très diffusifs tels que le cœur d’un REP, la conver- gence du schéma d’itérations à source est très lente. Afin d’accélérer sa convergence, nous avons implémenté un nouvel algorithme (PDSA), adapté à notre implémentation hybride. La combinaison de ces techniques nous a permis de concevoir une version massivement parallèle du solveur SN Domino. Les performances de la partie Sweep du solveur at- teignent 33.9% de la performance crête théorique d’un super-calculateur à 768 cores. De plus, un calcul critique d’un réacteur de type REP 900MW à 26 groupes d’énergie mettant en jeu 1012 DDLs a été résolu en 46 minutes sur 1536 cœurs. Mots clés : Parallélisme, calcul distribué, HPC, multi-cœur, vectorisation, ordonnanceur à base de tâche, SN cartésien, Sweep. Discipline : Informatique LaBRI (UMR CNRS 5800) Equipe Projet Inria HiePACS 1 Université de Bordeaux, Inria Bordeaux – Sud-Ouest-200818243Z, 351, cours de la libération 200, avenue de la vielle tour, 33405 Talence Cedex, FRANCE 33405 Talence Cedex, FRANCE 1HiePACS: High-End Parallel Algorithms for Challenging Numerical Simulations, https://team.inria.fr/ hiepacs/. iv Massively Parallel Cartesian Discrete Ordinates Method for Neu- tron Transport Abstract : High-fidelity nuclear reactor core simulations require a precise knowledge of the neutron flux inside the reactor core. This flux is modeled by the linear Boltzmann equation also called neutron transport equation. In this thesis, we focus on solving this equation using the discrete ordinates method (SN) on Cartesian mesh. This method in- volves a source iteration scheme including a sweep over the spatial mesh and gathering the vast majority of computations in the SN method. Due to the large amount of compu- tations performed in the resolution of the Boltzmann equation, numerous research works were focused on the optimization of the time to solution by developing parallel algorithms for solving the transport equation. However, these algorithms were designed by consider- ing a super-computer as a collection of independent cores, and therefore do not explicitly take into account the memory hierarchy and multi-level parallelism available inside mod- ern super-computers. Therefore, we first proposed a strategy for designing an efficient parallel implementation of the sweep operation on modern architectures by combining the use of the SIMD paradigm thanks to C++ generic programming techniques and an emerging task-based runtime system: PaRSEC. We demonstrated the need for such an approach using theoretical performance models predicting optimal partitionings. Then we studied the challenge of converging the source iterations scheme in highly diffusive media such as the PWR cores. We have implemented and studied the convergence of a new acceleration scheme (PDSA) that naturally suits our Hybrid parallel implementation. The combination of all these techniques have enabled us to develop a massively parallel version of the SN Domino solver. It is capable of tackling the challenges posed by the neutron transport simulations and compares favorably with state-of-the-art solvers such as Denovo. The performance of the PaRSEC implementation of the sweep operation reaches 6.1 Tflop/s on 768 cores corresponding to 33.9% of the theoretical peak perfor- mance of this set of computational resources. For a typical 26-group PWR calculations involving 1.02 × 1012 DoFs, the time to solution required by the Domino solver is 46 min using 1536 cores. Keywords: Parallelism, distributed computing, HPC, multi-core, vectorization, task- based runtime system, Cartesian SN, Sweep. Discipline: Computer science LaBRI (UMR CNRS 5800) Equipe Projet Inria HiePACS 1 Université de Bordeaux, Inria Bordeaux – Sud-Ouest-200818243Z, 351, cours de la libération 200, avenue de la vielle tour, 33405 Talence Cedex, FRANCE 33405 Talence Cedex, FRANCE 1HiePACS: High-End Parallel Algorithms for Challenging Numerical Simulations, https://team.inria.fr/ hiepacs/. v Remerciements Cette thèse constitue pour moi l’aboutissement d’un long parcours à la fois temporel et géographique. Je tiens ici à remercier ici tous ceux qui ont participé à cette aventure avec moi. Je remercie déjà tous ceux que je vais oublier. En premier lieu, mes remerciements s’adressent à mon jury de thèse. Je remercie Michael A. Heroux et Alain Hébert pour avoir accepté de rapporter cette thèse et pour les retours qu’ils m’ont fait sur le manuscrit. Je les remercie également pour leur présence dans mon jury de soutenance de thèse. Je remercie ensuite Raymond Namyst pour m’avoir fait l’honneur de présider ce jury. Mes remerciements s’adressent ensuite à mes encadrants de thèse qui ont toujours été présents pour me conseiller sur mes travaux de recherche. Je remercie Laurent qui m’a d’abord encadré en stage et qui par la suite m’a proposé ce sujet de thèse. Je le remercie pour son implication, pour les discussions que nous avons eues sur le HPC et pour m’avoir fait progresser en rédaction scientifique. Je remercie Pierre pour m’avoir encouragé à aller vers les supports exécutifs à base de tâches et pour m’avoir accordé la liberté d’explorer plusieurs axes dans mes travaux de recherche. Je remercie Mathieu, que j’ai croisé lors d’un de mes déplacements à Bordeaux, pour son implication dans mes travaux, et pour avoir pris le temps de m’expliquer les entrailles du monde des runtimes par tâches. Je remercie Jean pour sa réactivité à mes multiples sollicitations en rapport avec ma thèse. J’ai passé la majorité de mon temps dans les locaux de la R&D d’EDF à Clamart au sein du groupe I23 du département SINETICS. Une journée typique au sein de ce groupe débutait nécessairement par une pause café collective, agrémentée des douceurs très souvent directement sorties des fourneaux des maîtres pâtissiers du groupe. Il faut dire que cette dose quotidienne de sucre était nécessaire afin de suivre les discussions qui s’en suivaient et dont