Ingénieur développement logiciel spécialiste en méthodes numériques haute-performance
Contexte
- Contract type: Fixed-term contract
- Level of qualifications required: Graduate degree or equivalent
- Fonction: Engineer
L'objectif principal du poste est de contribuer au développement logiciel de composyx. Le logiciel composyx est une bibliothèque d'algèbre linéaire en C++ axée sur la composabilité. Son objectif est de permettre à l'utilisateur d'exprimer un large éventail d'algorithmes à l'aide d'une interface de haut niveau, allant des prototypes sur ordinateur portable aux calculs parallèles sur des supercalculateurs multi-nœuds.
L'ingénieur recruté s'intégrera au sein de l'équipe de développement de composyx au sein de l'équipe-projet Inria concace.
Ce poste s'inscrit dans le cadre du programme de recherche Numérique pour l'Exascale NumPEx et plus particulièrement dans le projet Exa-MA: Methods and Algorithms for Exascale.
L'objectif principal du programme de recherche Numérique pour l'Exascale (NumPEx) en France est de développer des compétences et des infrastructures de pointe dans le domaine du calcul exascale.
Ces compétences et infrastructures permettront d’effectuer des calculs à une échelle sans précédent, atteignant des performances de l’ordre du quintillion (1018) d’opérations par seconde.
Le projet Exa-MA: Methods and Algorithms for Exascale se concentre sur les aspects Exascale des méthodes numériques, en garantissant leur adaptabilité au matériel existant et à venir. De plus, il s’agit d’un projet transversal, proposant des méthodes et des outils où la modélisation, les données et l’IA, à travers les algorithmes, sont centrales.
Mission confiée
- Développement du logiciel parallèle composyx au sein de l'équipe concace, essentiellement dans les domaines de l'algèbre linéaire et multilinéaire;
- Support à l'intégration de composyx dans les applications cibles d'Exa-MA: Methods and Algorithms for Exascale;
- Toutes les contributions scientifiques de concace auront vocation à être intégrées dans composyx. L’ingénieur appuiera techniquement cette intégration et sera en support au développement des briques élémentaires.
Principales activités
- Conception et développement de nouvelles fonctionnalités pour le
logiciel
C++
composyx au sein de l'équipe concace, essentiellement dans les domaines de l'algèbre linéaire et multilinéaire parallèle. Les développements suivants seront prioritaires:- consolidation de l'interface
python
(pybind11) de composyx avec l'objectif d'être entièrement compatible avec numpy, scipy et ddmpy; - développement d'un solveur multigrille composable au sein de composyx (existant à l'heure actuelle seulement sous la forme de prototype).
- consolidation de l'interface
- Rédaction de la documentation scientifique et technique des fonctionnalités développées;
- Évaluation des fonctionnalités numériques et de la performance systématique sur les plate-formes de calcul locales, régionales, et nationales.
- Support à l'intégration de composyx dans les applications cibles d'Exa-MA: Methods and Algorithms for Exascale.
Compétences
1. Compétences techniques/opérationnelles
- Connaissance de l'algèbre linéaire numérique et du calcul haute
performance (
MPI
,OpenMP
, moteurs d'exécution…); - Connaissances solides et expériences en développement logiciel;
- Maîtrise du
C++ moderne
et de laprogrammation générique
, et bonnes connaissances en python; - Architecture logicielle et paradigmes de programmation, génie
logiciel, bonnes pratiques et outils de développement logiciel:
gestion de version, (
git
,gitlab
), CI/CD (gitlab-ci
), documentation et programmation littérale (org-mode
), construction de paquets (cmake
), diffusion et déploiement (guix,singularity
); - Capacité à rédiger, publier et présenter en français et en anglais;
- Capacité à proposer et réaliser des mises en œuvre de référence, des prototypes et démonstrateurs: autonomie, créativité, veille pro-active, écoute des besoins;
- Capacité à comprendre les contextes et besoins scientifiques, et à les traduire dans des implantations technologiques
- Maîtrise de la démarche scientifique associée à l’expérimentation (science reproductible, état de l’art scientifique, état de l’art technologique d’un domaine, publication logicielle, contribution à la publication scientifique sur l’aspect méthodologique et la mesure de performance)
2. Savoir être / compétences relationnelles
- Ténacité, aimant l’effort au long terme
- Capacité de conceptualisation
- Sens de l'organisation
- Rigueur
- Fiabilité
- Ouverture d’esprit et plaisir à travailler dans un environnement collaboratif bienveillant
Contacts
- Inria team: concace
- Supervisors:
- Emmanuel Agullo / Emmanuel.Agullo@inria.fr
- Gilles Marait / Gilles.Marait@inria.fr
- Luc Giraud / Luc.Giraud@inria.fr
L'essentiel pour réussir
- Autonomie
- Rigueur
- Capacité à dialoguer avec d'autres scientifiques ou industriels