Outils

Résolution de l'équation du transport des neutrons sur des architectures massivement parallèles et hétérogènes : application aux géométries hexagonales

Date
Mercredi 25 février 2026
Horaires

14h

Lieu(x)
Amphithéatre Jules Horowitz

Centre CEA de Saclay 91191 Gif-sur-Yvette France

Intervenant(s)

Soutenance de Gabriel SUAU sous la direction de Thierry GAUTIER

Langue(s) des interventions
Description générale

Résumé de la thèse

L’analyse et la conception de cœurs de réacteurs nucléaires repose fortement sur la simulation numérique afin de prévoir avec précision le comportement du cœur en conditions de fonctionnement normales ou accidentelles. La population de neutrons est gouvernée par une équation de Boltzmann linéaire, aussi appelée équation de transport des neutrons. Dans ce travail, nous nous concentrons sur la méthode des ordonnées discrètes (SN) en angle combinée à une méthode de type Galerkin Discontinu (DG) d’ordre élevé en espace pour l’équation de transport des neutrons sur des maillages Cartésiens et hexagonaux. Le problème discret étant de très grande dimension, il est résolu par le biais d’algorithmes itératifs imbriqués, où l’itération la plus interne requiert un balayage du domaine spatial pour un ensemble de directions discrètes. Le balayage requiert d’assembler et de résoudre un grand nombre de petits systèmes linéaires, ce qui en fait le noyau de calcul le plus coûteux dans l’algorithme de résolution. Par conséquent, un grand nombre de travaux de recherches ont été menés en vue de développer des algorithmes de balayages efficaces pour des architectures de calcul massivement parallèles. Les processeurs graphiques (GPUs) constituant une part croissante des ressources de calcul dans les super- calculateurs modernes, les algorithmes de balayages doivent être repensés afin d’exploiter au mieux ces accélérateurs. La variété des constructeurs de GPUs se reflète au niveau logiciel par des modèles de programmation spécifiques à chaque architecture, entraînant de la duplication de code et des efforts de maintenance supplémentaires. Afin de remédier à ce problème, des modèles de programma- tions portables ont été développés, visant à fournir une manière d’exprimer le parallélisme indépendante de l’architecture sous-jacente. Dans ce travail, nous développons de nouveaux algorithmes de balayage pour la méthode SN-DG d’ordre élevé, visant les CPU multicœurs et les GPUs, et nous décrivons leur implémentation avec le modèle de programmation Kokkos. Dans un premier temps, nous proposons une méthode générale pour maximiser la performance mono-cœur, basée sur une agrégation des inconnues qui réduit le nombre de calculs redondants, et sur une stratégie de vectorisation explicite. Nous explorons ensuite les capacités du framework Kokkos pour implémenter différents algorithmes de balayages parallèles pour les CPU multicœurs. Cette implémentation est capable d’atteindre 4 TFLOP/s sur un seul nœud de calcul avec 128 cœurs CPU. Enfin, nous proposons un nouvel algorithme destiné aux GPUs, basé sur des noyaux d’algèbre linéaire batchés efficaces. À cet effet, un solveur LU batché spécialisé pour les petits systèmes linéaires a été implémenté. En minimisant le trafic mémoire et en faisant un maximum de calculs à la compilation, cette implémentation surpasse les performances des bibliothèques à l’état de l’art pour les tailles d’intérêt. Notre implémentation du balayage sur GPU a atteint 4.8 et 4.6 TFLOP/s respectivement sur un GPU NVIDIA H100 et AMD MI300, démontrant sa portabilité.


Nuclear reactor core analysis and design extensively rely on numerical simula- tion to accurately predict the behaviour of the core under normal or accidental operating conditions. The neutron population is governed by a linear Boltzmann equation, also known as the neutron transport equation. In this work, we focus on the Discrete Ordinates (SN) angular method combined with a high order Discontinuous Galerkin (DG) spatial discretisation for the neutron transport equation on Cartesian and hexagonal meshes. Due to the high dimensionality of the discrete problem, it is solved using nested iterative algorithms, where the innermost iteration involves a sweep of the discrete domain for a set of discrete directions. The sweep algorithm involves the assembly and resolution of many small linear systems, which makes it the most computationally intensive kernel in the resolution algorithm. Therefore, a substantial amount of research works have been focused on developing efficient parallel sweep algorithms for mas- sively parallel computer architectures. As Graphics Processing Units (GPUs) constitute an ever-increasing share of computational ressources in modern High Performance Computing (HPC) systems, current sweep algorithms need to be redesigned in order to exploit the computing power of these accelerators. Due to the variety of GPU vendors, softwares must be implemented using architecture- specific programming models, leading to code-duplication and maintainability issues. To remedy these problems, several performance portable programming models have been developed, which aim at providing a vendor-agnostic way to express parallelism. In this work, we develop new sweep algorithms for the high order SN-DG method targeted at multicore CPUs and GPUs, and describe their implementa- tion using the Kokkos programming model. We first propose a general method for maximising the performance on a single core, which relies on the aggregation of unknowns to reduce the amount of redundant calculations, and on an explicit vectorisation strategy. We then explore the Kokkos framework to implement various parallel sweep algorithms for multicore CPUs. We demonstrate that this implementation is able to reach 4 TFLOP/s on a 128-core CPU node, cor- responding to 30% of the theoretical peak performance of the machine. Finally, we propose a new algorithm for GPUs based on efficient batched linear algebra kernels. To this end, a batched LU solver specialized for small linear systems has been implemented. By minimizing traffic with the main memory and relying on compile-time calculations when possible, this implementation surpasses the performance of state-of-the-art libraries for our problem sizes. The GPU sweep implementation is able to achieve 4.8 and 4.6 TFLOP/s respectively on a single NVIDIA H100 and AMD MI300 GPU, demonstrating its portability.

Gratuit

Mots clés

Disciplines