Conférence
Notice
Lieu de réalisation
Campus Croix Rouge - Université de Reims Champagne-Ardenne Langue : Français
Langue :
Français
Crédits
Pierre Elyakime (Intervention)
Conditions d'utilisation
Droit commun de la propriété intellectuelle
Citer cette ressource :
Pierre Elyakime. JCAD. (2023, 3 octobre). Parallélisation par l'intermédiaire d'une fenêtre à mémoire partagée (MPI 3.0) : application à un code de mécanique des fluides , in JCAD 2023. [Vidéo]. Canal-U. https://www.canal-u.tv/148424. (Consultée le 22 janvier 2025)

Parallélisation par l'intermédiaire d'une fenêtre à mémoire partagée (MPI 3.0) : application à un code de mécanique des fluides

Réalisation : 3 octobre 2023 - Mise en ligne : 27 novembre 2023
  • document 1 document 2 document 3
  • niveau 1 niveau 2 niveau 3
Descriptif

JADIM est un code de calcul de 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 un code en partie parallélisée par la technique Single Program Multiple Data (SPMD) avec la librairie MPI et tourne sur plusieurs milliers de processus sur les centres de calcul régional et nationaux.

Actuellement cette parallélisation est réalisée sur la plupart des variables du code sauf pour celles stockant la géométrie et les conditions aux limites. Ces variables ne sont pas distribuées en mémoire, ce qui signifie que tous les processus du même nœud de calcul les stockent. Cette caractéristique devient limitant en mémoire pour les simulations avec de très grands maillages, au-delà de 100 millions de cellules.

Une réponse directe à ce problème est de dépeupler les nœuds de calculs, et ainsi perdre en efficacité de calcul. Une autre, plus indirecte, est d'étendre la parallélisation distribuée (SPMD) aux variables qui stockent la géométrie et les conditions aux limites, ce qui est long et fastidieux car cela nécessite de reprendre l'ensemble du code.

Une réponse plus originale a été d'utiliser une nouvelle approche de programmation introduite dans la norme MPI 3.0 nommée Remote Memory Access (RMA), en particulier la fonctionnalité qui permet de partager une zone de mémoire à différents processus d'un même nœud de calcul [1], [2].

Au cours de cet exposé, nous présenterons l'approche RMA et nous expliquerons comment nous l'avons adapté à notre besoin [3]. Nous ferons une rapide présentation de son implémentation dans le code de mécanique des fluides JADIM appliqué aux variables contenant la géométrie et les conditions aux limites [3].

Enfin, nous regarderons ce que cette méthode a apporté pour (i) la performance de la mémoire : les gains mémoire obtenus pour un calcul au sein d'un même nœud de calcul et (ii) la conséquence sur les tailles de maillage, et (iii) la performance en temps de calcul du code : les gains obtenus en temps de calculs pour un calcul entre le code JADIM non parallélisé par RMA et parallélisé par RMA.

 

Références

[1] William Gropp, Torsten Hoefler, Rajeev Thakur and Ewing Lusk : Using Advanced MPI, Modern Features of the Message-Passing Interface

[2] MPI : A Message-Passing Interface Standard Version 3.0, University of Tennessee

[3] M. Beauvillier, P. Elyakime, D. Legendre, Développement d'un outil de simulation numérique HPC pour l'étude des bombardiers d'eau

Intervention
Thème
Discipline :
Documentation

Dans la même collection