FacebookTwitterLinkedInImprimer

La simulation numérique est un outil stratégique, complémentaire aux études expérimentales, pour la compréhension fine des phénomènes physiques complexes. Dans un grand nombre d’outils de simulationa, la performance dépend fortement de l'efficacité de la résolution des systèmes linéaires, étape la plus consommatrice en temps de calcul.

Recourir à la puissance de calcul parallèle, offerte par les architectures matérielles complexes et hétérogènesb des moyens de calcul actuels, permet alors d’obtenir les résultats des simulations avec la précision désirée dans un temps acceptable. Toutefois, les algorithmes de résolution n’étant pas en mesure d'exploiter pleinement ces architectures, une dégradation rapide des  performances est constatée au-delà d’un certain nombre d’unités de calcul. 

Nos efforts de recherche ont donc porté sur la conception d’algorithmes parallèles pour l’inversion de grandes matrices creuses. Ces algorithmes tirent parti des architectures matérielles modernes grâce à des modèles de programmation adaptés. Ceci a conduit à développer la bibliothèque MCGSolver, un vaste choix de solveurs linéaires itératifs préconditionnés, parallélisés pour les architectures multicœurs et multi-GPU(1). Cette bibliothèque gère, de façon transparente et découplée, des algorithmes numériques et les différents niveaux de parallélisme, au travers de nombreux modèles de programmationc.

Gain de performance obtenu grâce à la minimisation des communications
Gain de performance obtenu grâce à la minimisation des communications

MCGSolver est enrichi en permanence par de nouvelles méthodes, telles que celle basée sur la minimisation des communications (figure). Cette bibliothèque est disponible dans les outils de simulation d’IFPEN via la brique logicielle ALIEN, co-développée avec le CEA, qui rend accessible un large choix de solveurs linéaires préconditionnés au moyen d’une unique interface.
 

a - Comme pour le stockage géologique de CO2 ou les écoulements particulaires multi-échelles.
b - Composées de processeurs multi-coeurs (x86/ARM) et de cartes accélératrices (GPU).
c - MPI, HARTS(2), OpenMP, CUDA, SIMD.
 


(1) A. Anciaux-Sedrakian, J. Eaton, J-M. Gratien,T. Guignon, P. Have, C. Preux, O. Ricois
    DOI :10.2118/173223-MS 

(2) A. Roussel, J-M. Gratien, et T. Gautier
    DOI :10.2516/ogst/201602
0


Contact scientifique : Ani ANCIAUX SEDRAKIAN

> NUMÉRO 33 DE SCIENCE@IFPEN