Le candidat retenu rejoindra le projet NumPEx Exa-DI.

Si vous êtes prêt à relever le défi, n'hésitez pas à poser votre candidature !

Contexte

Lancé en 2023 pour une durée de six ans, le programme de recherche PEPR NumPEx contribue à la conception et au développement de méthodes numériques et de composants logiciels qui équiperont les futures machines européennes exascales et post-exascales. NumPEx vise également à aider la communauté scientifique et industrielle à exploiter pleinement les capacités et le potentiel de ces nouvelles architectures. Les domaines d’application comprennent, entre autres, la météorologie, la climatologie, l’aéronautique, l’automobile, l’astrophysique, la physique des hautes énergies, la science des matériaux, la production et la gestion de l’énergie, la biologie et les soins de santé.
Au sein de NumPEx, l’équipe Exa-DI travaille main dans la main avec la communauté des applications pour :

  • Identifier et formaliser les principaux modèles algorithmiques et de communication rencontrés dans les applications exascales.
  • Spécifiez des mini-applications qui reflètent leurs principaux défis techniques.
  • Développer et fournir ces mini-applications, basées sur la pile logicielle NumPEx, en tant qu’implémentations de référence pour la recherche, la co-conception et l’évaluation des performances.
  • Évaluer les performances et la portabilité des différentes mises en œuvre de mini-applications sur des installations et des architectures matérielles à grande échelle.

Afin de renforcer son expertise en matière de benchmarking et de profilage, Exa-DI crée un poste d’ingénieur spécialisé dans le benchmarking et le profilage HPC. Ce poste est destiné à assurer la rigueur, l’automatisation et la reproductibilité des mesures de performance pour les mini-applications de l’équipe.

La mission

En tant qu’ingénieur en benchmarking et profilage HPC, vous serez responsable de la structuration, de l’exécution et de l’extension des efforts de benchmarking de l’équipe. Dans ce rôle, vous devrez :

  • Construire et maintenir la chaîne d’outils de benchmarking, y compris les cadres et l’infrastructure pour les benchmarks HPC automatisés, reproductibles et intégrés à l’IC.
  • Concevoir et mettre en œuvre des flux de collecte de données de profilage, en assurant la traçabilité et la caractérisation systématique des goulets d’étranglement.
  • Définir et normaliser des mesures d’évaluation couvrant les performances, l’évolutivité, la portabilité et l’efficacité à travers les architectures (CPU, GPU, many-core, clusters distribués…).
  • Développer des scénarios de référence et des charges de travail de référence pour les mini-applications Exa-DI, afin de permettre des comparaisons multiplateformes statistiquement significatives.
  • Mener des campagnes d’étalonnage, en veillant à la pertinence des résultats, à leur reproductibilité et à la comparabilité des architectures.
  • Identifier les goulets d’étranglement en matière de performance et de portabilité, et donner des conseils sur l’utilisation la plus efficace des modèles de programmation parallèle (par exemple, MPI, OpenMP, CUDA, HIP, SYCL…), des moteurs d’exécution (par exemple, StarPU) et des couches d’abstraction (par exemple, Kokkos).
  • Favoriser le transfert de connaissances, par le biais du mentorat, du soutien interne et de la formation à la méthodologie d’analyse comparative et aux outils de profilage, tant pour l’équipe de développement que pour la communauté des utilisateurs.
  • Contribuer à la co-conception de logiciels, en aidant à orienter les décisions techniques à l’aide de données mesurables.

Vous participerez également aux pratiques Agile de l’équipe, notamment à l’amélioration des processus, à la planification et au suivi des projets, à l’examen des progrès et aux démonstrations, ainsi qu’à la coordination avec d’autres équipes de développement et de recherche.

Compétences requises

Vous êtes titulaire d’un master, d’un diplôme d’ingénieur ou d’un doctorat en informatique ou dans un autre domaine lié au calcul scientifique.

Vous maîtrisez plusieurs langages de programmation (Python, C/C++), idéalement avec une connaissance approfondie de la programmation parallèle (GPU, multithreading, MPI, etc.). Vous êtes familier avec les outils standards de développement collaboratif : Git, Gitlab/GitHub, CMake/CTest, Docker, Spack, Guix, etc.

Vous avez au moins une expérience significative dans le domaine du benchmarking et du profilage HPC, avec des contributions démontrables à la fois dans l’aspect technique (outils et infrastructure) et dans l’aspect scientifique (définition de métriques significatives).

Vous êtes pragmatique et prenez des initiatives. Vos capacités d’analyse et de prise de recul vous permettent d’aborder avec confiance des problèmes complexes aux contraintes multiples (délais, défis techniques majeurs).

Vous aimez le travail en équipe et avez un intérêt marqué pour les collaborations interdisciplinaires impliquant de multiples parties prenantes à l’intersection des mathématiques appliquées, de l’informatique et des applications de la physique. Vous avez d’excellentes aptitudes à la communication écrite et orale, tant en français qu’en anglais.

Privacy Preference Center