Suivez

la liste

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

Yannick Ponty (Dir. Rech. CNRS)
Laboratoire J-L Lagrange, Observatoire de la Côte d'Azur (OCA) – Nice

Nos codes de simulation numérique HPC dans la recherche deviennent obsolètes. La problématique dans de nombreuses équipes est de faire migrer nos codes HPC vers ces nouvelles architectures sur des clusters GPU.

Il y a une librairie de calcul C++ qui permet de faire cette transition, c’est Kokkos (https://github.com/kokkos). Elle permet de choisir à la compilation l’architecture voulue (CPU, GPU, OpenMP, …, ect ). Elle a été construite pour fonctionner sur les plus gros clusters mondiaux.
L’objectif est de construire une bibliothèque en C++ qui utilise kokkos à la fois en CPU et/ou GPU. Cette bibliothèque sera une première approche pour explorer les possibilités de calculer sur des clusters GPU par des méthodes pseudo-spectrales.

L’ingénieur stagiaire devra s’imprégner des méthodes pseudo-spectrales et faire une recherche de l’existant pour trouver la meilleure stratégie pour le développement de la solution. Pour ensuite construire un code en C++ 11-17 simple, mais versatile qui permettra d’explorer les différentes optimisations sur les différentes architectures GPU. Le responsable de stage sera impliqué dans toutes les étapes de la construction de cette bibliothèque, avec parfois l’appui d’ingénieur en génie logiciel de l’institut. Ce sera un travail d’équipe.

Le stagiaire devra être compétent en programmation en C++ (version récente C++11, C++17), en programmation objet et en génie logiciel. Si le calendrier le permettra, il pourra suivre une formation pour la « library Kokkos » et interagir avec le groupe du CEA/maison de la simulation Saclay qui devient de plus en plus expert en ce domaine (https://cexa-project.org/). Savoir travailler en équipe et utiliser des suiveurs de version comme Gitlab ou Github.

Atout pour la carrière :
L’acquisition de ces compétences sera profitable pour intégrer des projetsHPC/data dans l’industrie, pour la transformation ou la création de code vers les plateformes GPU qui sont l’avenir du calcul scientifique ou du traitement de données comme l’AI.

Environnement d’accueil :
Il aura un bureau qui est sur le site de l’observatoire de la Côte d’Azur au Mont-Gros (Nice), un desktop linux si c’est nécessaire. Il pourra profiter du cadre idyllique du parc et de sa fameuse cantine vue sur la ville de Nice et la baie des Anges.

Yannick Ponty :

Laboratoire J-L Lagrange (UMR 7293)
Observatoire de la Côte d'Azur - Nice
Boulevard de L'Observatoire
CS 34229 06304 Nice Cedex 4 France