AMReX : une performance
MaisonMaison > Blog > AMReX : une performance

AMReX : une performance

Aug 25, 2023

Par Rob Farber

21 août 2023

Les performances, la portabilité et les fonctionnalités étendues sont toutes des caractéristiques clés du cadre logiciel AMReX, qui a été développé par des chercheurs du Lawrence Berkeley National Laboratory (Berkeley Lab), du National Renewable Energy Laboratory et de l'Argonne National Laboratory dans le cadre du département américain de l'Énergie. (Fait)Projet informatique exascale(ECP) Centre de co-conception AMReX.

Le centre de co-conception ECP AMReX garantit que ce cadre logiciel populaire et très utilisé pour les applications de raffinement de maillage adaptatif (AMR) massivement parallèles et structurées en blocs peut fonctionner efficacement sur les supercalculateurs du DOE. De nombreuses applications ECP utilisent AMReX pour modéliser un large éventail d'applications différentes, notamment la conception d'accélérateurs, l'astrophysique, la combustion, la cosmologie, l'écoulement multiphasique et l'énergie éolienne.

Pour traiter un si large éventail de phénomènes physiques, le logiciel doit prendre en charge un large éventail d’exigences algorithmiques. Comme indiqué dans « Une enquête sur les implémentations logicielles utilisées par les codes d'application dans le projet Exascale Computing », AMReX atteint la portabilité de cette plate-forme grâce à ses API. D'autres centres de co-conception ECP, tels que le Center for Efficient Exascale Discretizations (CEED) et le Co-design Center for Particle Applications, utilisent également cette même approche pour assurer la portabilité des performances.

Des CPU aux architectures hétérogènes

AMReX était à l'origine basé sur le framework BoxLib antérieur, qui était utilisé pour développer des applications AMR. John Bell (Figure 2), chercheur principal du centre de co-conception AMReX et scientifique principal de la division Mathématiques appliquées et recherche informatique du Berkeley Lab, a expliqué : « Le financement ECP nous a permis de repenser complètement BoxLib, qui a été conçu pour CPU- uniquement des systèmes, pour créer AMReX, qui fournit un cadre portable aux performances prenant en charge à la fois les processeurs multicœurs et un certain nombre d'accélérateurs GPU différents. AMReX est actuellement utilisé par un ensemble diversifié d'applications sur de nombreux systèmes différents.

Pour les codes d'application déjà basés sur BoxLib, l'équipe AMReX a documenté comment migrer leurs codes de BoxLib vers AMReX. (Cette documentation est disponible dans le référentiel AMReX sur Docs/Migration)

Parallèlement à l'accélération GPU, Bell a noté : « L'une des principales caractéristiques de conception d'AMReX est qu'il sépare les structures de données de base et les opérations de base sur ces structures de données des algorithmes utilisés par une application particulière, offrant ainsi aux développeurs beaucoup plus de flexibilité dans la manière de résoudre leurs problèmes. »

Introduction à la technologie

Les scientifiques utilisent l’AMR structuré en blocs comme « microscope numérique » pour résoudre des systèmes d’équations aux dérivées partielles (EDP). AMReX fournit un cadre pour développer des algorithmes permettant de résoudre ces systèmes, ciblant des machines allant des ordinateurs portables aux architectures exascale avec et sans accélération GPU.

Les scientifiques décrivent un large éventail de phénomènes physiques à l’aide des PDE, qui sont des relations entre des dérivées de différentes quantités décrivant le système. Le vent soufflant sur une chaîne de montagnes, la vibration d'un pont lors d'un tremblement de terre et la combustion à l'intérieur d'une supernova sont tous décrits par les PDE. La résolution des PDE permet aux scientifiques de mieux comprendre le comportement de systèmes complexes. Cependant, dans la plupart des cas, il n’existe pas de solution mathématique simple à un système d’EDP.

Au lieu de cela, ils doivent être résolus à l’aide d’un ordinateur. La manière dont le scientifique représente le système est essentielle à la résolution des PDE sur un ordinateur. Une approche courante consiste à définir l’état du système en termes de ses valeurs sur un maillage fini de points. Dans ce type d'approche basée sur le maillage, plus le maillage est fin (c'est-à-dire plus il contient de points), meilleure est la représentation de la solution. Les algorithmes AMR contrôlent dynamiquement le nombre et l'emplacement des points de maillage pour minimiser le coût de calcul tout en résolvant le problème avec une précision suffisante.

Comme indiqué dans « AMReX : Block-Structured Adaptive Mesh Refinement for Multiphysics Applications », les algorithmes AMR structurés en blocs utilisent une représentation hiérarchique de la solution à plusieurs niveaux de résolution (Figure 1). À chaque niveau, la solution est définie sur l'union des conteneurs de données à cette résolution, chacun représentant la solution sur une sous-région logiquement rectangulaire du domaine.