2023-05839 - Ingénieur scientifique contractuel / Calcul Scientifique / Calcul distribué et à haute performance / Bac + 5 ou équivalent

Type de contrat : CDD

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

Autre diplôme apprécié : Doctorat

Fonction : Ingénieur scientifique contractuel

Contexte et atouts du poste

Projet

Le projet de développement logiciel s'inscrit dans une collaboration entre les équipes POEMS et ALPINES, d'Inria Saclay et Paris respectivement, autour de la bibliothèque Htool et dont le but est de proposer des méthodes rapides et efficaces pour la résolution de systèmes linéaires denses. L'objectif de ce projet est d'écrire une implémentation parallèle de la factorisation approchée de matrices hiérarchiques dans la bibliothèque Htool à l'aide du parallélisme par tâches. L'application est d'accélérer la résolution de systèmes linéaires denses via des méthodes de décomposition de domaine.

Localisation

Unité de Mathématiques Appliquées (UMA), ENSTA Paris, 828, Boulevard des Maréchaux, 91762 Palaiseau, France.
 
Durée
 
Deux ans, début du contrat après avril 2023.
 
Encadrants
  • Pierre Marchand, POEMS, UMA, ENSTA Paris
  • Pierre-Henri Tournier, ALPINES, LJLL, Sorbonne Université

 

Mission confiée

La personne recrutée sera amenée à proposer une implémentation parallèle d'une méthode de factorisation approchée pour résoudre des systèmes linéaires denses dans la bibliothèque Htool.

La méthode choisie s'appuiera sur les matrices hiérarchiques associées à des approximations de rang faible. L'objectif est d'accélérer la résolution de systèmes denses via des méthodes de décomposition de domaine. Ces dernières s'appuient sur la résolution de problèmes locaux plus petits, le plus souvent via des factorisations que nous cherchons ici à paralléliser en utilisant le parallélisme de tâches.

Dans un premier temps, il sera demandé de se familiariser avec la bibliothèque Htool, en ajoutant par exemple un nouveau type d'approximation de rang faible qui est une variation d'une méthode déjà présente dans la bilbiothèque. Par ailleurs, pour appréhender les techniques de parallélisme de tâche, on pourra proposer une factorisation LU dense parallélisée avec OpenMP (qui a depuis la version 4 un modèle de parallélisme de tâches avec dépendance). Il sera aussi possible de comparer avec d'autres frameworks de parallélisation par tâche tels que StarPU ou OmpSs.

Par la suite, l'objectif sera de proposer des implémentations des différentes opérations avec les matrices hiérarchiques en utilisant le parallélisme de tâches : assemblage et produit matrice vecteur pour commencer, afin de comparer avec les implémentations parallèles actuelles de Htool, puis la factorisation LU.

Il est attendu que chaque implémentation soit validée par des tests de passage à l'échelle, ainsi que des comparaisons entre les différents frameworks de parallélisme de tâches.

Principales activités

Principales activités :

  • Travail bibliographique concernant les algorithmes pour la parallélisation par tâche dans le contexte des matrices hiérarchiques
  • Développer ces algorithmes dans la bibliothèque Htool
  • Tester, modifier jusqu’à valider

Activités complémentaires :

  • Rédiger la documentation des nouvelles fonctionnalités
  • Présenter l’avancée des travaux à l'équipe de développement

Compétences

Profil recherché

Personne avec des compétences en C++ moderne (au moins C++11), et de l'expérience dans l'écriture de code parallélisé dans le contexte du calcul scientifique, idéalement parallélisme de tâches, ou alors parallélisme en mémoire distribuée (MPI) ou partagée (OpenMP). Dans ce dernier cas, ce projet sera l'occasion de se former au parallélisme de tâches.

Il est aussi attendu des compétences classiques de gestion de projet informatique, notamment utilisation de Git et CMake, ainsi qu'une volonté de travailler en équipe et d'apprendre. Il est important d'avoir de bonnes compétences de rédaction écrite et de présentation orale.

 

Avantages

  • Restauration subventionnée
  • Transports publics remboursés partiellement
  • Congés: 7 semaines de congés annuels + 10 jours de RTT (base temps plein) + possibilité d'autorisations d'absence exceptionnelle (ex : enfants malades, déménagement)
  • Possibilité de télétravail (après 6 mois d'ancienneté) et aménagement du temps de travail
  • Équipements professionnels à disposition (visioconférence, prêts de matériels informatiques, etc.)
  • Prestations sociales, culturelles et sportives (Association de gestion des œuvres sociales d'Inria)
  • Accès à la formation professionnelle
  • Sécurité sociale