Une candidature sur mesure pour ce poste — un CV et une lettre de motivation personnalisés qui correspondent à l’offre.
CEA propose un stage Bac+5 pour implémenter un solveur de diffusion dans un code de calcul sur maillages non structurés, en C++ et avec Kokkos. Le stage vise à exploiter les architectures CPU et GPU et à assurer une intégration sur des maillages variés.
Le candidat devra maîtriser le C++, démontrer des notions de calcul haute performance et, idéalement, connaître Kokkos. Stage 5–6 mois sur site, à Cesta, France, Nouvelle-Aquitaine.
Mathématiques, information scientifique, logiciel
Stage
Stage - Bac+5 - Implémentation d'un solveur de diffusion dans un code GPU non structuré - H/F
Lorsqu'une sonde spatiale pénètre dans l'atmosphère d'une planète, elle peut atteindre une vitesse plusieurs fois supérieure à celle du son. Elle comprime alors fortement les gaz atmosphériques au contact de sa paroi, ce qui entraîne un échauffement important de sa structure ainsi qu'un freinage violent. Afin de garantir l'intégrité de cette structure, l'avant de la capsule, qui subit l'essentiel du freinage, est recouvert d'un bouclier thermique. Le CEA développe des codes de calcul permettant de simuler les phénomènes physiques intervenant lors d'une rentrée atmosphérique, afin de dimensionner ces boucliers thermiques par la simulation numérique. Une telle approche nécessite de résoudre l'écoulement fluide quasi stationnaire en parallèle de la conduction thermique instationnaire à travers la structure de l'objet. Cette dernière doit être résolue à l'aide d'un schéma stable et robuste, reposant sur un solveur temporel implicite permettant l'utilisation de grands pas de temps.
5-6 mois
Afin de tirer parti des nouvelles architectures GPU, qui offrent des gains de performances significatifs, ce stage propose d'implémenter un solveur de diffusion au sein d'un code de calcul de type volumes finis sur maillages non structurés. Ce code, développé en C++, repose largement sur la bibliothèque Kokkos, permettant aussi bien la vectorisation sur CPU que l'exécution sur GPU, et offrant ainsi une portabilité sur un large éventail d'architectures matérielles. Cependant, cette portabilité ainsi que les performances obtenues dépendent fortement de la qualité d'implémentation des algorithmes, en particulier sur GPU. Dans le cadre du développement du solveur de diffusion, il s'agira de pouvoir traiter différents types de maillages tout en apportant un soin particulier à la résolution temporelle implicite, notamment via l'implémentation d'un solveur linéaire de type gradient conjugué ou GMRes, ou par une librairie externe. Une première étape consistera à résoudre l'équation de la chaleur en deux dimensions et à valider son implémentation. Une seconde étape portera sur l'implémentation d'un couplage faible entre le domaine fluide et le domaine solide, appliqué à des configurations simples.
Conformément aux engagements pris par le CEA en faveur de l'intégration des personnes handicapées, cet emploi est ouvert à toutes et à tous. Le CEA propose des aménagements et/ou des possibilités d'organisation pour l'inclusion des travailleurs handicapés.
Participant à la protection nationale, une enquête administrative est réalisée pour tous les collaborateurs du CEA afin d'assurer l'intégrité et la sécurité de la nation.
Le(la) candidat(e) devra présenter un intérêt marqué pour les méthodes numériques et le développement de codes de calcul haute performance. Il(elle) devra être familier avec le langage C++ et posséder des notions de programmation sur architectures CPU et GPU. Une connaissance de la bibliothèque Kokkos constituerait un atout supplémentaire.
Cesta
France, Nouvelle-Aquitaine