2018-01004 - Ingénieur de développement C++ HPC sur la librairie éléments-finis MoReFEM

Type de contrat : CDD de la fonction publique

Contrat renouvelable : Oui

Niveau de diplôme exigé : Bac + 5 ou équivalent

Fonction : Ingénieur scientifique contractuel

Niveau d'expérience souhaité : Jeune diplômé

A propos du centre ou de la direction fonctionnelle

Le centre de recherche Inria Saclay – Île-de-France, créé en 2008, accueille 450 scientifiques et 100 membres des services d’appui à la recherche. Les scientifiques sont organisés en 35 équipes de recherche dont 26 sont communes avec des partenaires du plateau de Saclay.

Le centre Inria Saclay - Île-de-France est un acteur essentiel de la recherche en sciences du numérique sur le plateau de Saclay. Il porte les valeurs et les projets qui font l’originalité d’Inria dans le paysage de la recherche : l’excellence scientifique, le transfert technologique, les partenariats pluridisciplinaires avec des établissements aux compétences complémentaires aux nôtres, afin de maximiser l’impact scientifique, économique et sociétal d’Inria.

Contexte et atouts du poste

L’équipe-projet MΞDISIM est spécialisée dans la modélisation mathématique et mécanique du système cardiovasculaire, et plus généralement pour la modélisation biomécanique à l’échelle de l’organe. Pour ce faire, l'équipe développe depuis 2012  une librairie éléments finis HPC compatible avec ces exigences : La librairie MoReFEM (Modeling Research with the Finite Element Method, dépot GitLab). Cette librairie développée en C++ (~1300 fichiers, 85000 lignes de codes) est aujourd’hui mûre, avec plus précisément :

  • les principales physiques d’intérêt implémentées, 
  • la plupart les spécificités éléments finis disponibles 
  • les fonctionnalités parallèles du code
  • les outils de tests informatiques, numériques et de parallélisme structurés dans un système d’intégration continue

L’ objectif de ce poste est désormais de changer de paradigme dans le développement de ce code interne vers une offre de librairie éléments finis performante, fonctionnant sur cluster et interfacée avec les outils de l’état de l’art.  Notre objectif est donc, sur la base de la librairie actuelle, de définir un écosystème cohérent pour des simulations extrêmement poussées sur des clusters de calcul, notamment en modélisation cardiaque.

 

Mission confiée

Missions :
Avec l'aide de Sébastien Gilles, développeur principal du code MoReFEm la personne recrutée sera amenée à réaliser entre autres:

  • l’évaluation et l’optimisation des calculs MoReFEM sur des clusters,
  • le développement d’une stratégie permettant le développement de modèles multi-physiques reposant sur plusieurs modèles MoReFEM existants, sans recourir à la réécriture intégrale d’un code dédié à ce nouveau modèle,
  • la mise en place d’une stratégie distribuée de génération des entrées-sorties, permettant la production et la visualisation de résultats scientifiques.

Pour une meilleure connaissance de l'équipe et de sa problématique scientifique : voir le site web de l'équipe
et concernant le code : voir le dépot Gitlab.

Collaboration :
La personne recrutée sera en lien avec Sébastien Gilles (ingénieur sénior) pour les aspects développements logiciels, Philippe Moireau (chercheur senior et responsable de l'équipe) et Dominique Chapelle  (chercheur senior dans l'équipe) pour les aspects modélisations et éléments finis, mais aussi d'autres équipes de recherche Inria, notamment les équipes Gamma3 (maillage et visualisation) et Reo (couplages multiphysiques)

Responsabilités :
La personne recrutée a la charge de porter le développement du code dans l'équipe et de promouvoir son utilisation (semaine de séminaire de développement, mise en place de tutoriels et démonstrateurs).

 

Principales activités

En résumé, les activités demandées sont:

Principales activés :

  • Evaluer et optimiser les performances parallèles du code,
  • Développer un outil de couplage haut niveau,
  • Interfacer avec des outils entrées-sorties notamment de visualisation,

Activités complémentaires :

  • Mettre en place des démonstrateurs,
  • Animer une communauté d’utilisateurs,
  • Rédiger la documentation. 

 

Compétences

Compétences en programmation objet (en particulier C++).

Connaissances en calcul scientifique (éléments finis),

Connaissances en mécanique appréciables mais non-exigées

Bonne maîtrise de l’anglais (écrit et parlé) souhaitable.

 

Avantages sociaux

  • Restauration subventionnée
  • Transports publics remboursés partiellement
  • Sécurité sociale
  • Congés payés
  • Aménagement du temps de travail
  • Installations sportives

Rémunération

Rémunération selon expérience.