Bonjour à tous,

Je travaille sur un code de Mécanique des Fluides Numériques (CFD) écrit en Fortran 77/90. Le code est parallélisé avec MPI et/ou OpenMP. Ce code est conçu pour que chaque processus ne connaisse que ce qu'il a à connaitre. Je m'explique: le processus lancé sur le core 1 du processeur 1 connait uniquement le fluide présent dans la partie du domaine complet qu'il lui a été assigné. Ce processus n'a aucune idée de ce qui se passe ailleurs.

Pour ce que je veux faire j'ai besoin que tous les processus aient accès à toutes les données sur les frontières extérieures du domaine.

Dans un premier temps j'ai pensé à la solution la plus évidente, l'emploi de MPI_GATHER suivi de MPI_SCATTER. Mais cette solution n'est pas acceptable, car elle augmente considérablement les échanges MPI et donc le temps CPU (on parle de plusieurs milliers de processus en parallèle).

Dans un second temps je me suis posé la question s'il existe une sorte de mémoire partagée entre les différents processeurs. Pas au niveau de la RAM de chaque noeuds du cluster, mais plutot au niveau infiniband ou un truc dans le genre.

Bref je suis à la recherche de mot-clés pour débuter.

SI vous avez des idées, je suis preneur!
Bonne journée à tous!