beandeau>
Portage ciblé sur GPUs multi-architecture AMD & NVIDIA d'un code de mécanique des fluides
Guillaume Damour  1  , Pierre Elyakime  1@  
1 : Institut National Polytechnique [Toulouse]
imft

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) et parallélisé par la technique Single Program Multiple Data (SPMD) avec la librairie MPI. Ce code qui résout les équations de Navier-Stokes tridimensionnelles, incompressibles et instationnaires par la méthode des volumes finis sur des maillages structurés orthogonaux curvilignes permet une description fine de nombreux phénomènes physiques présents dans les écoulements multiphasiques incompressibles. A de grandes échelles la simulation numérique directe (DNS) est particulièrement coûteuse en temps de calcul sur des architectures CPU et la résolution de la pression représente à elle seule environ 70 % du temps passée dans une itération temporelle. En effet, la pression calculée par une méthode de projection classique afin d'assurer l'incompressibilité nécessite de résoudre une pseudo-équation de Poisson représentée après discrétisation par un très grand système linéaire creux.

Pour améliorer les performances, le portage de la résolution de la pression sur des cartes graphiques NVIDIA en utilisant la librairie AmgX [1] a été initié dès 2017 [2], poursuivi en 2019 [3] et validé à l'ensemble du code en 2022 [4]. Dans le cas d'une simulation diphasique sur un maillage régulier cartésien de taille 432³, des performances très intéressantes ont été montrées avec notamment un gain de 27 pour la résolution de la pression entre 1 socket d'un nœud du supercalculateur OLYMPE du méso centre de calcul Midi-Pyrénées CALMIP (18 processus MPI) et un calcul hybride 8 processus MPI & 4 gpus NVIDIA, et un gain de 4,2 sur le temps total [4].

La librairie AmgX est cependant NVIDIA technologie dépendante et le portage sur les cartes graphiques des autres constructeurs comme AMD ou Intel n'est pas assuré.

Au cours de cet exposé, nous présenterons le travail de portage multi-architecture de la résolution de la pression du code JADIM aussi bien sur des cartes graphiques AMD que NVIDIA. Pour cela, nous nous intéresserons (i) au choix de la librairie PETSc [5] qui a permis cela, (ii) à sa configuration en comparant les différentes possibilités qu'offre la couche d'abstraction de PETSc avec l'utilisation des librairies externes ViennaCL, Kokkos ou Hypre. Enfin, nous regarderons (iii) les performances obtenues sur les super calculateurs du CINES Adastra et en particulier sur ses cartes graphiques MI250X d'AMD et des supercalculateurs de CALMIP Olympe et du cluster ARM Tupan et ses cartes graphiques NVIDIA. Pour finir, nous nous intéresserons (iv) au coût énergétique et financier d'une simulation sur les cartes graphiques MI250X d'AMD du super calculateur Adastra.

 

Références :

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

[2] Campagne de renouvellement du super calculateur de CALMIP, 2017

[3] 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

[4] P. Elyakime, Y. Ciavaldini, T. Bonometti, Evaluation des performances d'un portage ciblé sur GPUs dans un code de mécanique des fluides, JCAD 2022

[5] PETSc, https://petsc.org/release/

 

 



  • Poster
Chargement... Chargement...