2018-00978 - Ingénieur(e) : Développement support d'exécution et bibliothèque de communication pour le calcul haute performance

Type de contrat : CDD de la fonction publique

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

Fonction : Ingénieur scientifique contractuel

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

Contexte et atouts du poste

Cadre 

Dans le cadre d'un projet de collaboration entre plusieurs équipes Inria (Hiepacs, Pleiade, Storm, Tadaam) une action de développement technologique (ADT), vise à developper plusieurs briques logicielles pour constituer une pile de calcul scientifique complète : solveur numérique, support d'exécution, bibliothèque de communication. 

Objectif de cette ADT
Le projet vise à intégrer et consolider ces différents éléments dans un ensemble cohérent visant à produire une pile logicielle compétitive et qui passe à l'échelle. A terme cette ADT permettra (i) sur un plan technique : de confronter les différentes briques entre elles afin de les consolider et d’améliorer leurs performances; développer une pile au meilleur niveau international; (ii) sur un plan de valoriation, d'améliorer la visibilité des travaux en HPC d'Inria Bordeaux Sud-Ouest; aux développeurs d’applications de calcul scientifique d’utiliser nos technologies de manière transparente ; (iii) en développement des compétences, de développer les synergies entre les équipes impliquées ; accroître le potentiel de recherche et de publication autour de ces développements; accroître les compétences des équipes en termes de passage à l’échelle en visant des exécutions de grandes tailles.

Le poste consistera donc à travaller avec les différentes équipes impliquées pour mener à bien les objectifs du projet a travaillant essentiellement sur la partie support d'exécution et bibliothèque de communication (couches basses). 

Mission confiée

Missions :
Avec l'aide des chercheurs des différentes équipes et d'un ingénieur expérimenté, la personne recrutée sera amenée à travailler au développement des interfaces entre les différentes briques imliquées. Plus précisement, il devra travailler à :

  • L'interface entre bibliothèques de communication et support d'exécution,
  • Le passage à l'échelle du moteur de communication en nombre d'événements,
  • La consolidation des méthodes d'ordonnancement des calculs sur les ressources,
  • La gestion des données,
  • L'intégration entre le support d'exécution et la bibliothèque de calcul numérique,
  • Le support utilisateur,
  • L'interfacage vers d'autre languages (Fortran).

Pour une meilleure connaissance du sujet de recherche proposé :
Les différentes briques logicielles sont:

Collaboration :
La personne recrutée sera en lien avec les chercheurs développants ces différents éléments de la pile logicielle et un ingenieur expérimenté chargé des couches hautes de la pile (solveur et application). 

 

Principales activités

Principales activés : développement logiciel dans ces 3 briques ; développement des interfaces entre ces  briques ; développement des tests ; développement de la documentation ; mise en oeuvre applicatives sur grands calculateurs.

Activités complémentaires : présenter et expliquer l'avancée des travaux devant l'ensemble des gens concernés ;  diffuser les développements via un site web et des démonstrations. 

 

Compétences

Compétences techniques et niveau requis :

La personne recrutée devra avoir un bon niveau en C (e.g. structure de pointeurs de fonctions). 

Elle devra aussi avoir des compétences en système d'exploitation et avoir une formation en parallélisme. 

Elle devra maitriser Unix/Linux,  les outils de distribution open source (e.g. cmake) et GNU, être capable de faire interagir plusieurs bibliothèques, d'écrire les tests de non-régression, de réaliser et fournir le packaging pour l'installation de la pile complète.

Langues : français et anglais écrit

Compétences relationnelles : travail en équipe, présentation de son travail (éventuellement devant des non-spécialistes). 

Compétences additionnelles appréciées : capacité à apprendre de nouvelles technologies. Connaitre les bases du calcul parallèle (MPI et thread).

 

Avantages sociaux

  • Restauration subventionnée
  • Transports publics remboursés partiellement
  • Congés payés
  • Aménagement du temps de travail

Rémunération

CDD de 24 mois

Rémunération mensuelle brute : entre 2562 € et 2936 € (selon grille de salaires prenant en compte le niveau de diplôme et les précédentes expériences professionnelles)