2018-00763 - Apprentissage : Développeur en logiciel de support pour le calcul parallèle

Type de contrat : Contrat d'apprentissage

Contrat renouvelable : Oui

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

Fonction : Apprenti de la recherche

A propos du centre ou de la direction fonctionnelle

L'objectif du projet TADaaM est de concevoir et de construire une couche service à l'échelle du système. Cette couche aura un état : elle gardera en mémoire les accès des applications ou des couches basses. Elle aura deux parties. Premièrement, elle permettra d'abstraire les caractéristiques bas niveau du système (e.g. topologie réseau, utilisation des ressources) et de la pile logicielle (e.g. thread, données, support d'exécution). Deuxièmement, les applications pourront enregistrer leurs besoins et leurs comportements via une API adéquate. Avec ses deux informations, la couche optimisera l'exécution de toutes les applications à l'échelle de tout le système et de manière coordonnée.

Contexte et atouts du poste

L’équipe Inria TADaaM, basée à Talence, s’intéresse à l’optimisation de l’utilisation des ressources dans les grands calculateurs parallèles pour les applications de calcul intensif et en particulier celles utilisant du maillage. Cette équipe travaille sur les modèles de plateforme et d’application, les abstractions et la localité ainsi que sur les mécanismes d’optimisation (placement, équilibrage de charge, communication, etc.) Le logiciel hwloc est développé par TADaaM pour comprendre la topologie de des plates-formes parallèles et mieux y placer les tâches de calcul et les données. hwloc (Hardware Locality [1]) est utilisé sur dans tous les centres de calcul car il est intégré dans la plupart des bibliothèques de communication et de gestion des tâches utilisées par les applications parallèles. Il nécessite un suivi  régulier des évolutions matérielles, en terme de processeur, mémoire et réseau.

 

[1] https://www.open-mpi.org/projects/hwloc

 

Mission confiée

L’objectif du poste est de prendre en charge la maintenance quotidienne du logiciel hwloc et de participer à son développement, en lien avec l’équipe de recherche.

Principales activités

Cela impliquera de :

  • Participer au développement des nombreuses fonctionnalités qui doivent être ajoutée au logiciel.
  • Participer à la veille technologique permettant de s’assurer qu’hwloc fonctionne correctement sur les nouvelles architectures matérielles.
  • Utiliser la plate-forme GitHub pour contribuer au logiciel, tester les contributions proposées par les partenaires, et participer à la gestion des rapports d’erreurs
  • Utiliser la plate-forme Jenkins qui assure l’intégration continue du logiciel. Cela implique d’identifier les problèmes détectés lors des tests logiciels mais aussi de gérer les problèmes système apparaissant parfois sur la plate-forme ou sur les machines virtuelles de compilation.

Le logiciel hwloc étant relativement complexe, la prise en main se fera de manière progressive avec des tâches simples au début et, avec la montée en compétence au fil du temps, des tâches plus complexes en lien avec des fonctionnalités avancées du logiciel

Compétences

Prérequis :

  • Programmation en C sous Linux
  • Notion d’architecture des processeurs
  • Anglais technique

Avantages sociaux

  • Restauration subventionnée
  • Transports publics remboursés partiellement

Rémunération

Niveau de la rémunération brute : Barème fixé par la CCI (selon l’âge)