Une illustration de structures d'écoulement complexes en turbulence à partir d'une grande simulation réalisée à l'aide de 1, 024 nœuds sur Summit. Le cadre inférieur droit montre une vue agrandie d'une région à forte activité. Crédit :Dave Pugmire et Mike Matheson, Laboratoire national d'Oak Ridge
Turbulence, l'état de mouvement fluide désordonné, est un puzzle scientifique d'une grande complexité. La turbulence imprègne de nombreuses applications en science et en ingénierie, y compris la combustion, transport de polluants, Prévision météo, astrophysique, et plus. L'un des défis auxquels sont confrontés les scientifiques qui simulent la turbulence réside dans la large gamme d'échelles qu'ils doivent capturer pour comprendre avec précision le phénomène. Ces échelles peuvent s'étendre sur plusieurs ordres de grandeur et peuvent être difficiles à saisir dans les contraintes des ressources informatiques disponibles.
Le calcul haute performance peut relever ce défi lorsqu'il est associé au bon code scientifique ; mais simuler des écoulements turbulents à des tailles de problème au-delà de l'état de l'art actuel nécessite une nouvelle réflexion de concert avec des plates-formes hétérogènes haut de gamme.
Une équipe dirigée par P. K. Yeung, professeur de génie aérospatial et de génie mécanique au Georgia Institute of Technology, effectue des simulations numériques directes (DNS) de la turbulence à l'aide du nouveau code de son équipe, GPU pour les simulations de turbulence à grande échelle (GESTS). DNS peut capturer avec précision les détails provenant d'un large éventail d'échelles. Plus tôt cette année, l'équipe a développé un nouvel algorithme optimisé pour le supercalculateur IBM AC922 Summit à Oak Ridge Leadership Computing Facility (OLCF). Avec le nouvel algorithme, l'équipe a atteint une performance de moins de 15 secondes d'horloge murale par pas de temps pour plus de 6 000 milliards de points de grille dans l'espace, un nouveau record du monde dépassant l'état de l'art antérieur dans le domaine pour la taille du problème.
Les simulations menées par l'équipe sur Summit devraient clarifier des problèmes importants concernant les flux de fluides turbulents à rotation rapide, qui aura un impact direct sur la modélisation des écoulements réactifs dans les moteurs et autres types de systèmes de propulsion.
GESTS est un code de dynamique des fluides numérique du Center for Accelerated Application Readiness de l'OLCF, une installation d'utilisateurs du bureau des sciences du département américain de l'Énergie (DOE) au laboratoire national d'Oak Ridge du DOE. Au cœur de GESTS se trouve un algorithme mathématique de base qui calcule à grande échelle, transformées de Fourier rapides (FFT) distribuées dans trois directions spatiales.
Une FFT est un algorithme mathématique qui calcule la conversion d'un signal (ou d'un champ) de son domaine temporel ou spatial d'origine en une représentation dans l'espace de fréquence (ou de nombre d'onde) et vice versa pour la transformation inverse. Yeung applique largement un grand nombre de FFT pour résoudre avec précision l'équation différentielle partielle fondamentale de la dynamique des fluides, l'équation de Navier-Stokes, en utilisant une approche connue en mathématiques et en calcul scientifique sous le nom de « méthodes pseudospectrales ».
La plupart des simulations utilisant un parallélisme massif basé sur le processeur partitionneront un domaine de solution 3D, ou le volume de l'espace où un écoulement de fluide est calculé, le long de deux directions dans de nombreuses longues "boîtes de données, " ou "des crayons". lorsque l'équipe de Yeung s'est réunie lors d'un hackathon GPU de l'OLCF fin 2017 avec le mentor David Appelhans, un membre du personnel de recherche chez IBM, le groupe a conçu une idée innovante. Ils combineraient deux approches différentes pour s'attaquer au problème. Ils partitionneraient d'abord le domaine 3-D dans une direction, former un certain nombre de "dalles" de données sur les processeurs à grande mémoire de Summit, puis parallélisez davantage au sein de chaque dalle à l'aide des GPU de Summit.
L'équipe a identifié les parties les plus chronophages d'un code CPU de base et a entrepris de concevoir un nouvel algorithme qui réduirait le coût de ces opérations, repousser les limites de la plus grande taille de problème possible, et tirer parti des caractéristiques uniques de Summit centrées sur les données, le supercalculateur le plus puissant et le plus intelligent au monde pour la science ouverte.
"Nous avons conçu cet algorithme pour être un parallélisme hiérarchique pour s'assurer qu'il fonctionnerait bien sur un système hiérarchique, " a déclaré Appelhans. " Nous avons mis jusqu'à deux dalles sur un nœud, mais parce que chaque nœud a 6 GPU, nous avons cassé chaque dalle et mis ces pièces individuelles sur différents GPU."
Autrefois, les crayons peuvent avoir été répartis entre de nombreux nœuds, mais la méthode de l'équipe utilise la communication sur les nœuds de Summit et sa grande quantité de mémoire CPU pour adapter des dalles de données entières sur des nœuds uniques.
"Nous avions initialement prévu d'exécuter le code avec la mémoire résidant sur le GPU, ce qui nous aurait limités à des problèmes de plus petite taille, " a dit Yeung. " Cependant, au Hackathon GPU OLCF, nous avons réalisé que la connexion NVLink entre le CPU et le GPU est si rapide que nous pouvions réellement maximiser l'utilisation des 512 gigaoctets de mémoire CPU par nœud."
La réalisation a poussé l'équipe à adapter certaines des principales parties du code (noyaux) pour le mouvement des données GPU et le traitement asynchrone, qui permet au calcul et au déplacement des données de se produire simultanément. Les noyaux innovants ont transformé le code et ont permis à l'équipe de résoudre des problèmes beaucoup plus importants que jamais à un rythme beaucoup plus rapide que jamais.
Le succès de l'équipe a prouvé que même les grands, les applications dominées par la communication peuvent grandement bénéficier du supercalculateur le plus puissant au monde lorsque les développeurs de code intègrent l'architecture hétérogène dans la conception de l'algorithme.
Fusionner vers le succès
L'un des ingrédients clés du succès de l'équipe était l'adéquation parfaite entre l'expertise scientifique de longue date de l'équipe de Georgia Tech et la pensée innovante et la connaissance approfondie de la machine d'Appelhans.
Les systèmes Ascent et Summitdev à accès anticipé de l'OLCF et une allocation d'un million d'heures de nœuds sur Summit fournies par le programme Innovative Novel and Computational Impact on Theory and Experiment (INCITE) ont également joué un rôle crucial dans la réalisation. géré conjointement par les installations informatiques de leadership d'Argonne et d'Oak Ridge, et le programme Summit Early Science en 2019.
Oscar Hernández, développeur d'outils à l'OLCF, aidé l'équipe à relever les défis tout au long du projet. L'un de ces défis consistait à déterminer comment exécuter chaque processus parallèle (qui obéit à la norme d'interface de transmission de messages [MPI]) sur le processeur en conjonction avec plusieurs GPU. Typiquement, un ou plusieurs processus MPI sont liés à un seul GPU, mais l'équipe a découvert que l'utilisation de plusieurs GPU par processus MPI permet aux processus MPI d'envoyer et de recevoir un plus petit nombre de messages plus volumineux que ce que l'équipe avait initialement prévu. En utilisant le modèle de programmation OpenMP, Hernandez a aidé l'équipe à réduire le nombre de tâches MPI, améliorant les performances de communication du code et conduisant ainsi à de nouvelles accélérations.
Kiran Ravikumar, un doctorant Georgia Tech sur le projet, présentera les détails de l'algorithme au sein du programme technique de la conférence 2019 sur les supercalculateurs, SC19.
L'équipe prévoit d'utiliser le code pour faire de nouvelles incursions dans les mystères de la turbulence ; ils introduiront également d'autres phénomènes physiques tels que le mélange océanique et les champs électromagnétiques dans le code à l'avenir.
« Ce code, et ses futures versions, offrira des opportunités passionnantes pour des avancées majeures dans la science de la turbulence, avec des aperçus de généralité portant sur le mélange turbulent dans de nombreux environnements naturels et artificiels, " dit Yeung.