Kokkos PseudoSpectral Library

Codage C++ en HPC : passage du CPU au GPU avec Kokkos

Le projet KOSPEL (Kokkos PseudoSpectral Library) s’inscrit dans la continuité du développement d’un code utilisant des méthodes pseudo-spectrales. Ce code a été initialement conçu par Yannick Ponty dans les années 2000, puis renforcé entre 2006 et 2015 par Alain Miniussi qui y a intégré des pratiques modernes de génie logiciel (design patterns, tests unitaires, gestion de version, parallélisation MPI et Pthread). Ce travail a permis de produire de nombreuses publications et de faire tourner le code sur des clusters de calculs locaux et nationaux.
Cependant, avec l’évolution des architectures matérielles, notamment l’émergence des GPU comme standard dans le calcul haute performance (HPC), ce code devient obsolète pour les nouvelles plateformes. Le défi actuel est donc d’imaginer une transition vers ces architectures tout en conservant les performances et la rigueur scientifique du code d’origine.
Pour cela, la bibliothèque Kokkos, développée en C++ et soutenue notamment par le Département de l'Énergie américain et le CEA français, offre une solution moderne. Elle permet d’écrire un code unique, qui peut être compilé pour différentes architectures (CPU, GPU, OpenMP…) sans avoir à réécrire les algorithmes. Kokkos prend en charge l’optimisation matérielle et facilite la portabilité des codes scientifiques vers des plateformes modernes et évolutives.

L’objectif de ce projet est donc de concevoir une nouvelle bibliothèque C++ s’appuyant sur Kokkos, qui implémente les méthodes pseudo-spectrales, dans un premier temps pour une machine avec un seul GPU, puis dans un second temps pour des clusters multi-GPU, tout en assurant une bonne scalabilité via MPI. Ce travail préparatoire permettra ensuite de migrer progressivement le code Cubby vers cette nouvelle architecture.
 



Porteur du projet

Yannick Ponty, Directeur de recherche CNRS. Laboratoire Lagrange CNRS/UMR 729, Observatoire de la Côte d'Azur.
 

Participants au projet

Sarah Ali, Stagiaire, M1  Ingénierie Mathématique. Université Côte d'Azur.
Visualisation de champs magnétiques
Visualisation de champs magnétiques Visualisation de champs magnétiques issus de simulations réalisées avec le code MHD CUBBY, dans deux configurations distinctes : à gauche, une modélisation utilisant des techniques de pénalisation pour reproduire l’expérience de dynamo VKS ; à droite, le champ magnétique généré par un écoulement de Taylor-Green dans une boîte périodique.