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 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é.

Exa-DI vise à accélérer le développement d’applications exascales en fournissant des « mini-applications » et des « kits de développement » basés sur la pile logicielle NumPEx. Ces kits peuvent être facilement déployés et instanciés dans différents contextes, offrant des solutions durables, performantes et portables pour les modèles algorithmiques et de communication les plus courants rencontrés dans les applications exascales. Ces modèles seront traités de manière itérative grâce à un processus agile de co-conception et de co-développement en collaboration avec la communauté des applications.

Exa-DI est à la recherche d’architectes logiciels très motivés ayant une solide expérience en informatique scientifique et en ingénierie logicielle pour renforcer l’équipe !

La mission

As part of an Agile team, you will:

  • contribute, according to your expertise, to the exploration of specific patterns such as partial differential equation discretization, block-structured adaptive mesh refinement, particle methods, and more.
  • collaborate with the application community to identify and specify « mini-applications » that represent the main technical challenges associated with each pattern.
  • design a software architecture that promotes the broadest and most flexible reuse of libraries, frameworks, and tools from other NumPEx teams while ensuring overall consistency and performance.
  • minimize technical debt and anticipate future developments through a proactive refactoring approach.
  • lead the development and integration of mini-apps and provide technical guidance to less experienced engineers.
  • optimize performance and portability by effectively leveraging parallel programming models and abstraction layers.
  • create benchmarks and metrics to evaluate the performance, scalability, and portability of the proposed solutions.
  • ensure knowledge transfer by providing support and training.
  • play an active role in the Agile approach by contributing to process improvements, project planning and tracking, progress reviews and demonstrations, and coordination with other teams.

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 et vous avez au moins cinq ans d’expérience dans le développement de logiciels, dont un minimum de trois ans dans un rôle de responsable technique ou d’architecte logiciel, et vous êtes familiarisé avec les outils de développement collaboratif standard : Git, GitHub, CMake, Docker, Spack, GTest, CTest, etc.

Vous maîtrisez plusieurs langages de programmation (Python, C/C++ ou Fortran), idéalement avec une connaissance approfondie de la programmation parallèle (GPU, multi-threading, etc.).

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.