Thèse soutenue

Génération de code automatique pour le calcul exaflopique pour la méthode de boltzmann sur réseaux

FR  |  
EN
Auteur / Autrice : Markus Holzer
Direction : Catherine LambertUlrich Rüde
Type : Thèse de doctorat
Discipline(s) : Informatique et Télécommunications
Date : Soutenance le 29/11/2024
Etablissement(s) : Université de Toulouse (2023-....) en cotutelle avec Friedrich-Alexander-Universität Erlangen-Nürnberg
Ecole(s) doctorale(s) : École doctorale Mathématiques, informatique et télécommunications (Toulouse)
Partenaire(s) de recherche : Laboratoire : Centre Européen de Recherche et Formation Avancées en Calcul Scientifique (Toulouse)
Etablissement délivrant conjointement le doctorat : Institut national polytechnique (Toulouse ; 1969-....)
Jury : Président / Présidente : Tobias G. Natter
Examinateurs / Examinatrices : Catherine Lambert, Ulrich Rüde, Tobias G. Natter, Éric Climent, Jens Harting
Rapporteurs / Rapporteuses : Jonas Latt, Christian Holm

Mots clés

FR  |  
EN

Mots clés contrôlés

Résumé

FR  |  
EN

Les superordinateurs Exascale sont des systèmes informatiques capables de réaliser 1e18 FLOPS, appellé un exaFLOPS. L’immense échelle de systèmes tels que celui-ci impose des défis importants dans le développement de codes capables d’exploiter pleinement cette puissance de calcul. En outre, le matériel de plus en plus hétérogène utilisé par les principaux superordinateurs d’aujourd’hui ajoute une couche supplémentaire de complexité. Dans le domaine de la CFD, il est donc crucial d’examiner soigneusement chaque aspect d’une simulation numérique, en commençant par la conception et la sélection d’algorithmes adaptés à de tels environnements. Par exemple, des algorithmes tels que LBM sont explicitement conçus avec un parallélisme massif à l’esprit. Néanmoins, unemise en oeuvre très efficace de cet algorithme doit être adaptée au matériel respectif pour une utilisation optimale des ressources. Pour relever ces défis, cette thèse explore l’utilisation de la génération de code par le biais d’un langage intégré spécifique à un domaine. La génération de code nous permet de cibler des architectures matérielles spécifiques et d’appliquer des optimisations précises qui exploitent les connaissances spécifiques au domaine. Dans le cadre de cette recherche, nous étendons et remanions le paquet Python LBMpy pour prendre en charge les variantes de pointe de LBM. LBMpy représente l'LBM symboliquement en utilisant un système d’algèbre informatique, permettant la dérivation automatique d’équations discrétisées basées sur des spécifications définies par l’utilisateur. Pour obtenir des équations avec un minimum de FLOPS, nous améliorons fondamentalement les capacités de simplification de LBMpy dans ce travail. Les équations discrétisées dérivées par LBMpy sont fournies au paquet Python pystencils qui génère des noyaux de calcul spécifiques à l’architecture hautement optimisés dans un langage de niveau inférieur à partir de celles-ci. Nous élargissons la gamme des plates-formes matérielles prises en charge et révisons des aspects cruciaux du processus de génération de code, tels que le système de typage, afin d’améliorer les performances et la maintenabilité. Une intégration sophistiquée de ces noyaux de calcul dans le cadre waLBerla est également développée, avec une discussion approfondie des composants clés de la mise en oeuvre. L’une des avancées les plus significatives de cette intégration est la génération de noyaux d’interpolation spécialisés. Ces noyaux sont essentiels pour le transfert d’informations entre des cellules de résolutions différentes au sein du domaine de simulation, garantissant la précision et la cohérence des données sur des grilles de tailles différentes. Ce développement nous a permis d’effectuer la plus grande simulation à ce jour en utilisant l'LBM sur un domaine non uniforme, en utilisant plus de 4000 AMD MI250X GPUs. La capacité à gérer efficacement un environnement de calcul aussi vaste et hétérogène souligne l’efficacité de notre approche dans la mise à l’échelle de simulations complexes sur des plates-formes matérielles de nouvelle génération. Nous vérifions et validons notre approche en simulant un écoulement monophasique turbulent autour d’une sphère à l’aide d’une configuration de maillage non uniforme sur GPU, reproduisant avec succès la crise de traînée. En outre, nous démontrons les capacités de notre méthode par le biais de simulations d’écoulements de boue, offrant de nouvelles perspectives sur le comportement des bulles de Taylor. Enfin, nous analysons les trajectoires des gouttelettes sous l’influence d’une source de chaleur laser dans des écoulements thermocapillaires tridimensionnels. Pour évaluer les performances de notre approche, nous présentons les résultats de tous ces scénarios sur les CPUs et GPUs les plus récent. Nous fournissons des données de performance pour un seul noeud et offrons des informations précieuses en contextualisant les résultats mesurés avec des modèles de performance appropriés.