Informations générales
Ouverte aux titulaires et CDI CNRS & fonction publique
Intitulé de l'offre : Développeur calcul haute performance H/F
Référence : UMR7648-MOBINT-F56621
Lieu de travail : PALAISEAU
Institut : INSIS - Institut des sciences de l'ingénierie et des systèmes
Date de publication : lundi 4 novembre 2024
Session : Mobilité au fil de l’eau 2024
Groupe de Fonction : IEG2
BAP : E - Informatique, Statistiques et Calcul scientifique
Emploi type : Ingénieur-e en calcul scientifique
Missions
L'ingénieur-e travaillera sur le développement de codes open source et communautaires massivement parallèles (CPU, GPU) de simulation numérique (fluide et particulaire) pour étudier la physique des plasmas. L'ingénieur-e travaillera également sur des codes de visualisation et d'analyse de données.
Activités
Activités principales :
- Développement de codes : Contribuer activement à la conception et au développement de codes de simulation et d¿analyse de données pour la physique des plasmas.
- Architecture logicielle : Concevoir l¿architecture des codes, en assurant une modularité optimale et une performance sur les différentes configurations matérielles.
- Optimisation des performances : Analyser la performance des codes sur diverses architectures parallèles (CPU, GPU ou mixte.
- Tests et intégration continue : Mettre en place et réaliser les tests, ainsi que les processus d¿intégration continue pour garantir un développement optimal du code.
- Support et maintenance des infrastructures : Assurer le fonctionnement et la performance optimal des codes sur les machines de calcul des centres nationaux et internationaux, actuels et futurs, en participant au passage à l'exascale notamment.
- Diffusion et documentation : Assurer la diffusion des codes et leur documentation, afin de les rendre accessibles et exploitables par la communauté scientifique internationale.
- Cohérence des développements : Harmoniser les développements et les outils (visualisation, validation, analyse de performances, gestion de projet) entre les différents codes plasmas d'intérêts pour les 3 axes de recherche du LPP.
- Gestion de l'écosystème de calcul : Assurer la gestion de l'écosystème de développement et de calcul du LPP, y compris le matériel (hardware) et les logiciels (software).
Activités complémentaires :
- Collaborer avec les Ingénieurs en administration informatique et faire le lien entre les infrastructures matérielles/logiciels et les codes de calcul, visualisation et analyse de données.
- Former les Chercheurs, ITs, Doctorants et Post-doctorants aux bonnes pratiques de simulation et d'analyse de données, en assurant la qualité et la pérennité des contributions aux codes.
- Gérer les outils de développement communautaires.
Compétences
Compétences techniques :
- Développer des solutions en langages de programmation C++, Python et C, y compris leur interfaçage et leurs versions modernes.
- Concevoir des architectures logicielles efficaces.
- Gérer des projets de développement logiciel en utilisant des outils comme Git.
- Implémenter des algorithmes de calcul numérique.
- Communiquer en anglais (niveau B2 : lu, écrit, parlé).
- Collaborer au développement de codes de calcul haute performance massivement parallèles en équipe.
- Réaliser des tests unitaires et des tests de fonctionnement pour valider les codes.
- Analyser et optimiser les performances des codes de calcul haute performance.
- Effectuer une veille technologique sur les outils, bibliothèques de calcul et nouveaux algorithmes.
Connaissances :
- Maitrise experte des langages C++, Python, C, et leur interfaçage, dans leur version moderne, et suivre leurs évolutions au cours du temps. Maîtriser le langage FORTRAN (serait un plus).
- Comprendre les principes de calcul scientifique et les algorithmes de haute performance.
- Utiliser les méthodes de gestion de version (Git) et appliquer les bonnes pratiques de développement logiciel en équipe.
- Connaître les outils et bibliothèques de calcul numérique et parallèle.
Compétences comportementales :
- Faire preuve d'un esprit d'analyse et de synthèse.
- Accompagner et conseiller les membres de l'équipe en partageant ses connaissances.
- S'adapter et s'ouvrir à l'apprentissage de nouvelles technologies.
- Exercer une rigueur, une vigilance et un souci du détail dans le travail.
- Cultiver des aptitudes relationnelles et un sens de la communication favorisant le travail en équipe.
Contexte de travail
Le LPP est un laboratoire de recherche en physique des plasmas très impliqué dans des projets de recherche internationaux et des collaborations industrielles de premier plan comme par exemple les plasmas de fusion avec le projet ITER, les plasmas froids avec les propulseurs de satellites avec SAFRAN ou encore l'exploration spatiale, avec la participation aux missions spatiales comme Magnetospheric MultiScale, Parker Solar Probe, Solar Orbiter, Bepi- Colombo, HelioSwarm et Juice. Devant la complexité des différents plasmas étudiés, la réussite de ces projets nécessite toutefois la mise en œuvre d'approches complémentaires aux expériences, via la simulation numérique et le développement de méthodes innovantes d'analyse de données issues d'expériences de laboratoire ou d'observations spatiales.
L'ingénieur-e évoluera dans un environnement riche en projets plasmas numériques innovants au sein de l'équipe informatique du LPP et de l'écosystème du campus d'IP Paris et en particulier celui des laboratoires de recherche partenaires de l'EUR PlasmaScience et de la fédération de recherche Plas@Par. Il/elle contribuera au développement des codes du LPP pour la communauté, et sera associé.e aux travaux scientifiques des équipes (codes PHARE, SMILEI, LPPic, OHM, SciQLOP, Speasy, Cdfpp, etc.). Il/elle participera à la formation des personnels du LPP (chercheurs, ITs, doctorants, post-doctorants, CDD) aux codes et machines locales ou des centres de calcul des centres nationaux et internationaux, actuels et futurs.