Amélioration des performances des simulations de géosciences basées sur la méthode des éléments finis spectraux par la combinaison d'optimisations de bas niveau à l'aide d'abstractions de haut niveau – INSEPTION
Alors que la montée en puissance du calcul haute performance est remarquable, une majorité des codes n’est pas adaptée à la grande diversité des architectures actuelles et à venir, poussant ainsi les informaticiens et les physiciens à les optimiser pour mieux exploiter les supercalculateurs. Dans cette lignée, INSEPTION vise à développer une bibliothèque cross-plateforme open-source hautement optimisée multi-niveaux de mémoire pour surpasser l’état de l’art de l’implémentation de la méthode en élément spectraux (MES) en concevant des optimisations bas-niveaux du kernel MES sur les CPUs et GPUs actuels et pour le préparer à l’Exascale. Un examen des codes MES a montré que le calcul des forces internes égale au produit de la matrice de rigidité « K » avec le vecteur des déplacements « U » (partie la plus couteuse en temps et commune aux codes MES) pouvait être significativement amélioré par une vectorisation explicite du produit KU via les intrinsèques SIMD (Single Instruction Multiple Data) C++. L’accélération obtenue sur un seul cœur est comprise entre 2 et 5 selon l’architecture. Bien que cette accélération soit significative, elle n’est pas aussi élevée qu’attendue puisque des unités SIMD de 512 bit (simple précision) peuvent théoriquement apportées des accélérations de 16. Ce manque de performance est dû aux verrous mémoires spécifiques au calcul KU des codes MES ; verrous que nous souhaitons investiguer au travers de l’étude des multiples niveaux de caches pour améliorer à la fois l’utilisation des unités SIMD et le passage à l’échelle intra-nœud qui en sera impacté. Pour masquer la complexité des optimisations et en intégrer des nouvelles, nous proposons de les isoler dans des couches bas-niveau, de les combiner via une architecture modulaire et d'y accéder de manière transparente au travers d’un langage spécifique dédié. Cette architecture logicielle améliorera la portabilité du kernel sur des CPUs et GPUs aux caractéristiques très différentes (tailles des unités, hiérarchie des mémoires), ainsi qu’aux différents paradigmes de programmations, bibliothèques et outils existants (intrinsèques SIMD, OpenMP, CUDA, HIP, OneAPI) ; et facilitera la modernisation des codes pour l’Exascale. La bibliothèque d’INSEPTION sera intégrée à deux codes MES impliqués dans plusieurs champs dont les applications s’étendent des études d’ultrasons en laboratoire à la sismologie planétaire: SPECFEM3D et EFISPEC3D. Bien que le projet INSEPTION repoussera la taille des simulations au-delà des tailles conventionnelles, les simulations « grand challenge » ne seront pas traitées. Le gain attendu permettra des prédictions de mouvements sismiques plus réalistes, des inversions de formes d’ondes plus précises, des quantifications d’incertitudes plus exhaustives, ou encore des simulations de bruit anthropique océanique dans des gammes de fréquences non calculables aujourd’hui. L’amélioration de l’algorithmie et des I/O des workflows (partitionnement des maillages non-structurés, post-traitements haute performance, filtrage et décimation) sera aussi examinée avec minutie. Ils orchestrent généralement la préparation des modèles de la Terre, de multiple maillages ou configurations de sources pour calculer des millions de séismogrammes requis par les applications géophysiques, telles que les inversions de forme d’onde pour imager la structure de la Terre ; les analyses de sensibilité pour quantifier moyennes et distributions de probabilité; ou encore les simulations sismo-acoustique haute-résolution en eau peu-profonde pour évaluer le bruit dû à l’élimination des engins explosifs historiques source de perturbations pour la vie marine et de dommage pour les infrastructures côtières. De par nos différentes expériences en tant que développeurs de codes HPC et d’environnements de calcul, le projet INSEPTION est le chemin nécessaire pour améliorer la performance, la productivité, la maintenance et la portabilité au travers des architectures actuelles et à venir.
Coordination du projet
Florent De Martin (BUREAU DE RECHERCHE GEOLOGIQUE ET MINIERE)
L'auteur de ce résumé est le coordinateur du projet, qui est responsable du contenu de ce résumé. L'ANR décline par conséquent toute responsabilité quant à son contenu.
Partenariat
ISTERRE Institut des Sciences de la Terre
LIFO EA 4022 LABORATOIRE D'INFORMATIQUE FONDAMENTALE D'ORLÉANS
BRGM BUREAU DE RECHERCHE GEOLOGIQUE ET MINIERE
LMA Laboratoire de mécanique et d'acoustique
Aide de l'ANR 492 415 euros
Début et durée du projet scientifique :
décembre 2023
- 48 Mois