Conférence
Notice
Lieu de réalisation
Maison des Sciences de l'Homme - Dijon
Langue :
Français
Conditions d'utilisation
Droit commun de la propriété intellectuelle
Citer cette ressource :
JCAD. (2022, 12 octobre). Evaluation des performances d'un portage ciblé sur GPUs dans un code de mécanique des fluides , in JCAD 2022. [Vidéo]. Canal-U. https://www.canal-u.tv/135208. (Consultée le 17 mai 2024)

Evaluation des performances d'un portage ciblé sur GPUs dans un code de mécanique des fluides

Réalisation : 12 octobre 2022 - Mise en ligne : 29 novembre 2022
  • document 1 document 2 document 3
  • niveau 1 niveau 2 niveau 3
Descriptif

JADIM est un code de calcul en mécanique des fluides développé en Fortran 90 à l'Institut de Mécanique des Fluides de Toulouse (IMFT). Ce code qui résout les équations de Navier-Stokes tridimensionnelles, incompressibles et instationnaires en utilisant une méthode de volumes finis en maillages structurés permet une description fine de nombreux phénomènes physiques présents dans les écoulements multiphasiques incompressibles. JADIM est parallélisé par une technique de décomposition de domaines avec la librairie MPI et tourne sur plusieurs milliers de processus sur les centres de calcul régional et nationaux. La pression calculée par une méthode de projection pour assurer l'incompressibilité nécessite la résolution d'une pseudo-équation de Poisson. Ce système linéaire creux devient très grand et sa résolution très gourmande en temps de calcul à grande échelle. Sous CPU, elle peut représenter jusqu'à 70 % du temps de calcul global et devient donc la cible prioritaire à accélérer. La résolution de ce système linéaire a été portée sur carte accélératrice GPUs dans le cadre d'une collaboration étroite initiée en 2017 entre l'Institut de Mécanique des Fluides de Toulouse et le mésocentre CALMIP. Il a été poursuivi lors du Hackathon GENCI de 2018 au cours duquel le 1ier prix de portage a été remporté. Ce portage ciblé a été réalisé par l'implémentation dans JADIM de la librairie AmgX [1] qui résout le système matriciel sous GPUs. Ce travail, en partie présenté lors des JCAD 2019 [2] a nécessité d'être poursuivi pour être étendu à l'ensemble des modules physiques proposés par le code et aussi définir les conditions optimales d'utilisation de cette parallélisation hybride MPI-GPU sur supercalculateurs.

En effet, pour les simulations multiphasiques qui nous intéressent, les coefficients de la matrice impliquée dans la résolution de la pseudo-équation de Poisson changent à chaque itération temporelle, en partie à cause des conditions limites et peuvent impacter les temps de résolution du système linéaire. Au cours de cet exposé, nous présenterons donc la validation de ce portage sur les différents modules physiques de JADIM en nous intéressant à l'influence des conditions aux limites sur le temps de calcul. Nous continuerons par l'évaluation des performances de la parallélisation hybride MPI-GPU sur le supercalculateur Olympe du mésocentre CALMIP. En particulier, (i) l'influence des choix de configuration d'AmgX pour le préconditionneur et le solveur, (ii) l'influence du nombre de CPU à utiliser par GPU en fonction de différentes tailles de maillage et (iii) l'influence d'une communication directe entre GPU au sein d'un même nœud en utilisant la technologie GPU Directe des librairies MPI cuda aware à travers la librairie AmgX.

Références : [1] A. Pedrono et al., Portage efficace d'un code de calcul en mécanique des fluides sur GPUs sans coder une ligne de CUDA (ou presque), JCAD 2019

[2] AmgX, https://developer.nvidia.com/amgx

[3] Y. Ciavaldini, P. Elyakime, T. Bonometti, Evaluation des performances d'une parallélisation hybride GPU-CPU dans un code de recherche en mécanique des fluides

Dans la même collection