code_saturne repose sur une architecture massivement parallèle. Il utilise le paradigme MPI (Message Passing Interface) comme principal niveau de parallélisme et peut, en option, recourir au parallélisme en mémoire partagée via OpenMP.
ㅤ
Plateformes HPC
code_saturne et neptune_cfd sont largement utilisés sur des systèmes HPC dans divers sites :
- Clusters EDF
- Architectures basées sur Intel.
- Machines PRACE
- ARCHER2 à l’EPCC ;
- Jean Zay à l’IDRIS.
- Machines du DOE, via l’accès INCITE
- Summit à l’ORNL.
Par le passé, ces deux codes ont également été utilisés sur les architectures IBM Blue Gene/L, Blue Gene/P et Blue Gene/Q aux sites suivants :
- EDF ;
- STFC Daresbury ;
- Laboratoire national d’Argonne (ANL).
Les tests menés par STFC Daresbury et l’IMFT ont porté sur plusieurs milliards de cellules. Ces tests ont donné lieu à un important travail d’optimisation parallèle et de débogage en collaboration avec EDF.
Des travaux sont en cours pour prendre en charge l’exécution sur GPU, bien que cette fonctionnalité ne soit pas encore utilisée en production.
ㅤ
Échelle de production type
Les études de production types portent généralement sur 10 à 50 millions de cellules, certaines études pouvant toutefois aller de 200 à 400 millions de cellules.
Parmi les simulations à grande échelle notables, on peut citer :
- la première simulation dépassant le milliard de cellules, menée par le STFC et EDF Energy UK en 2013 à l’aide de quatre racks Blue Gene/Q ;
- plusieurs exécutions de production dépassant le milliard de cellules et utilisant plus de 10 000 rangs MPI sur les clusters d’EDF.
ㅤ
Tests de performance européens
code_saturne est l’un des 12 codes sélectionnés pour la suite de tests de performance européens unifiée (UEABS) de PRACE et DEISA.
Il s’agit de l’un des deux codes CFD inclus dans cette suite de tests, aux côtés d’ALYA.
ㅤ
Partitionnement parallèle du domaine
Le parallélisme repose principalement sur un partitionnement classique du domaine. Les méthodes de partitionnement disponibles comprennent :
- ParMETIS ;
- PT-SCOTCH ;
- un partitionneur interne basé sur une courbe de Morton remplissant l’espace.
Ces méthodes de partitionnement peuvent être combinées avec n’importe quelle bibliothèque MPI courante.
Les opérations d’entrée et de sortie sont indépendantes du partitionnement du domaine.
ㅤ
Gestion des cellules fantômes
Le parallélisme et la périodicité sont gérés à l’aide d’une méthode classique de cellules fantômes.
La plupart des opérations ne nécessitent que des cellules fantômes associées à des cellules partageant des faces. Les voisinages étendus, utilisés pour les calculs de gradient, nécessitent également des cellules fantômes associées à des cellules partageant des sommets.
ㅤ Need help? Ask the code_saturne community on the Forum.