Suivez

la liste

Description de l’employeur

Les géosciences et l'astronomie sont aujourd'hui deux domaines dans lesquels les données d'observation ou de simulation deviennent de plus en plus complexes et massives. Leur exploitation passe par des traitements qui relèvent du calcul haute performance dans des centres régionaux, nationaux ou dédiés. Le passage à l’échelle, l’amélioration de logiciels existants ou le co-développement matériel et logiciel sont aujourd'hui nécessaires pour relever le défi de ces traitements en particulier dans un contexte où le coût des capacités de calcul a cessé de baisser (prix, énergie, impact environnemental). Le besoin concerne en particulier les Services Nationaux d'Observation de l'INSU sur lesquels les chercheurs de l'OCA sont impliqués en astronomie (ex. : SKATE et INPOP).

L’OCA pilote la contribution française à l’observatoire radio-astronomique SKA (https://ska-france.oca.eu), contribue à l’approvisionnement de ses deux supercalculateurs (SDP) et à la mise en place des centres régionaux de données SKA (SRC). Le besoin pour chaque SDP d’absorber 1Tb/s en continu pour produire plus de 0,8 Po/jour de données scientifiques livrées aux SRC dans des enveloppes financière et énergétique fortement contraintes conduit à examiner en détail l’appariement entre le logiciel (en cours de développement) et l’architecture matérielle et logicielle responsables de son exécution afin d’améliorer le rendement de ces calculateurs – et au-delà des SRC. C’est un effort mené de concert au sein de l’équipe SCOOP faisant partie du cadre Agile SAFe de SKA, en collaboration avec des équipes de recherche CNRS et Inria en HPC et avec l’industrie.

L’OCA développe les éphémérides planétaires INPOP (https://www.imcce.fr/inpop) fournissant des positions et des vitesses précises pour 14 000 objets du système solaire. Le CNES et l’ESA utilisent ces données pour la navigation et l’exploitation des données de missions spatiales (Gaia, Bepi-Colombo, JUICE). Au-delà, en termes de recherche, elles ont permis de contraindre la recherche de la 9ième planète (encore à découvrir), de réaliser des tests sur la validité de différentes théories de la gravitation dans le système solaire, de mieux contraindre la distribution de masse dans le système solaire aussi bien au niveau de la ceinture principale des astéroïdes que de la ceinture de Kuiper. A plus long terme, INPOP a permis de calibrer la datation d’échantillons géologiques pour de études paléoclimatiques dans le cadre de l’ERC AstroGeo.

Mission générale du poste :

Accompagner l'évolution des Services Nationaux d'Observation de l'OCA en géosciences et astronomie en termes de calcul haute performance sur des codes existants et en développement dans le cadre de grands projets (SKA) ou d’interactions avec les agences (ESA) dans un contexte de forte croissance des besoins et d’accroissement du coût des ressources (prix, énergie).
La personne fera notamment partie de l’équipe Agile SAFe SCOOP travaillant sur la co-conception matérielle/logicielle pour les 2 supercalculateurs de SKA. Elle s’intéressera par exemple à la comparaison de stratégies d’accélération, aux modèles de programmation, aux entrées/sorties, au taux d’utilisation des ressources, à la performance et l’efficacité énergétique afin de rendre ces systèmes aussi efficaces que possible.
Elle contribuera également aux éphémérides planétaires INPOP, notamment en termes de réduction des temps de calcul et de l’exécution des codes pour intégrer un grand nombre de nouveaux objets issus de la mission Gaia (DR3) et pour fournir des éphémérides en phase opérationnelle pour des missions ESA (Bepi-Colombo, JUICE).
Pour Virgo la personne adaptera un pipeline de recherche de sources rares pour qu’il puisse être lance à la fois au centre de calcul de l’IN2P3 à Lyon (slurm) ainsi qu’à travers la grille OSG depuis les centres de calcul de LIGO.

Descriptif du poste :

L’ingénieur(e) mènera son activité au sein de l’OCA. Cet établissement est composé de trois unités de recherche (UMR) et d'une unité d'appui et de recherche (UAR) avec près de 450 personnes en tout sur 4 sites. L’ingénieur(e) sera intégré(e) dans l’équipe Direction des Systèmes d'Information de l'UAR. Il/Elle sera amené(e) à travailler sur des projets émanant des différentes UMR de l’OCA et ainsi à interagir directement avec les membres de plusieurs équipes.

L’ingénieur(e) mènera les activités suivantes :

  • Analyser les besoins des Services Nationaux d’Observation relatifs au besoin de calcul haute performance sur des supercalculateurs et les traduire en spécifications fonctionnelles et développements techniques (planification logicielle)
  • Étudier des questions relatives au co-développement logiciel et matériel de systèmes de calcul haute performance pour des applications préalablement identifiées, notamment définir des benchmarks en vue d’identifier et de caractériser des voies possibles d’amélioration logicielle et/ou matérielle
  • Prototyper ces améliorations et collaborer avec les développeurs pour l’optimisation du logiciel
  • Développer une infrastructure orchestrant l’exécution de benchmarks et capable de mesurer divers aspects liés à l’exécution (performance, flux de données, consommation etc.) sur différentes plateformes
  • Exécuter les benchmarks sur une variété de plateformes et interpréter les résultats, par exemple via du profilage ou de l’analyse de données

Compétences :

  • Une bonne compréhension du calcul haute performance (HPC) et du parallélisme hybride (MPI et OpenMP) ainsi que des techniques optimisation dans un contexte de programmation parallèle (benchmark, profilage)
  • La maîtrise des environnements HPC, incluant l’ordonnancement de tâches (tel SLURM) et les gestionnaires de paquets (tels module, Spack) ainsi que la pratique de la ligne de commande sous Linux
  • Une expérience du développement collaboratif
  • Un savoir-faire opérationnel en C++ moderne (14+)
  • La maîtrise de l'anglais (B2 écrit, oral): rédaction de documents, participation active aux réunions
  • Créativité et sens de l’innovation
  • Le goût du travail en équipe
  • Une connaissance des outils de la grille OSG
  • Un savoir-faire opérationnel en traitement et analyse de données est souhaité
  • Une connaissance d’autres langages et paradigmes de programmation est souhaitée
  • Une connaissance des environnements de développement collaboratifs (DevOps, git) est souhaitée
  • un plus : une expérience sur une grappe de serveurs (nationale ou régionale)
  • un plus : une connaissance des accélérateurs (tels les GPUs) et leur utilisation via des environnements de programmation ou librairies (CUDA, oneAPI, Kokkos, HIP)
  • un plus : une connaissance des technologies de conteneurs (tels Docker, Singularity, Sarus)