Thèse Algorithmes à Précision Mixte et Représentation des Données dans les Supports d'Exécution à Base de Tâches H/F - Doctorat.Gouv.Fr
- Bordeaux - 33
- CDD
- Doctorat.Gouv.Fr
Les missions du poste
Établissement : Université de Bordeaux École doctorale : Mathématiques et Informatique Laboratoire de recherche : LaBRI - Laboratoire Bordelais de Recherche en Informatique Direction de la thèse : Thomas HERAULT ORCID 0000000167566189 Début de la thèse : 2026-11-01 Date limite de candidature : 2026-09-30T23:59:59 Les architectures de calcul haute performance de classe exascale sont fortement hétérogènes et leur puissance est très inégalement répartie entre les formats numériques : les unités matricielles des accélérateurs délivrent en précision réduite un débit bien supérieur à celui de la double précision, et le coût des mouvements de données croît avec le nombre d'octets manipulés. L'algorithmique numérique a montré qu'une grande partie des calculs d'un solveur n'a pas besoin d'être menée en double précision : les algorithmes à précision mixte exploitent cette marge, soit en abaissant sélectivement la précision de certaines opérations, soit en compensant a posteriori la perte d'exactitude. Cette notion doit être entendue au sens large, couvrant aussi bien les différentes représentations en virgule flottante (fp64, fp32, tf32, bf16, fp16, fp8) que les représentations compressées des données, au premier rang desquelles les formats à rang faible par tuile (Tile Low Rank). Dans tous les cas, il s'agit d'accepter une représentation moins fidèle d'une donnée pour réduire le temps de calcul et le volume de communication, sous contrainte d'une exactitude finale maîtrisée.
Ces algorithmes sont aujourd'hui presque toujours exprimés au-dessus de supports d'exécution à base de tâches, qui décrivent le calcul comme un graphe de tâches et délèguent au support l'ordonnancement, la gestion des données et les transferts entre mémoires. Or, dans les réalisations existantes, les choix de précision et de représentation sont codés statiquement, à la main, dans l'application : chaque nouvelle stratégie suppose une réécriture, et le support d'exécution ignore tout de la précision des données qu'il manipule. L'objectif de la thèse est de combler ce fossé, en identifiant et en concevant les mécanismes qu'un support d'exécution doit offrir pour que les algorithmes à précision mixte soient exprimés simplement, réutilisables d'une application à l'autre, et exécutés efficacement. Un principe guide ce travail : la décision numérique (choix d'une précision, d'un rang, d'une tolérance) reste du ressort de l'application, qui seule connaît le contenu des données ; le support d'exécution fournit des mécanismes, non une politique.
La thèse explorera d'abord la gestion, par le support d'exécution, de plusieurs représentations d'une même donnée : insertion automatique des tâches de conversion et de compression, prise en compte de leur coût et du volume réellement transféré dans l'estimation des temps, choix de la version transmise en distribué pour réduire le volume des communications. Elle étudiera ensuite une stratégie d'exécution optimiste : plutôt que de prédire la précision adéquate, l'application fournit un critère de validation, et le support tente une exécution en précision réduite, la valide, et effectue un retour arrière vers une représentation plus fidèle en cas d'échec, avec des stratégies éventuellement adaptatives ou apprises. Une attention particulière sera portée à l'identification d'invariants - telle la monotonicité de l'augmentation de précision - permettant de restreindre l'espace des stratégies.
Les travaux seront menés dans le support d'exécution StarPU et validés sur les bibliothèques d'algèbre linéaire dense Chameleon et de solveurs creux PaStiX, sur les plateformes de calcul du programme NumPEx. La thèse est financée par le PEPR NumPEx (projet Exa-Soft), au titre d'un projet commun entre le WP3 (Runtime Systems) et le WP4 (Scalable Numerical Blocks). Elle est co-dirigée au sein des équipes-projets Inria TOPAL et STORM, en collaboration avec des partenaires numériciens du projet et des collègues internationaux. Cette thèse s'inscrit dans le PEPR NumPEx (projet Exa-Soft), au titre d'un projet commun entre le WP3 (Runtime Systems) et le WP4 (Scalable Numerical Blocks), et est co-encadrée au sein des équipes-projets Inria TOPAL et STORM. Elle bénéficiera de collaborations nationales avec les partenaires numériciens du projet - Emmanuel Agullo (CONCACE), Alfredo Buttari (IRIT) et Théo Mary (Sorbonne Université) - et internationales, notamment avec Julien Langou (University of Colorado, Denver). La thèse vise à doter les supports d'exécution à base de tâches des mécanismes nécessaires aux algorithmes à précision mixte - précisions flottantes réduites comme représentations compressées à rang faible. L'enjeu est de faire porter par le support la gestion des multiples représentations d'une donnée, les conversions et leur coût, tout en laissant la décision numérique à l'application, afin que ces stratégies soient plus simples à exprimer, réutilisables et efficaces. Les travaux seront menés dans StarPU et validés sur Chameleon et PaStiX. La thèse associe conception d'abstractions logicielles, développement dans le support d'exécution StarPU et validation sur les bibliothèques Chameleon et PaStiX. Après un état de l'art et l'analyse d'implémentations existantes, les mécanismes proposés seront prototypés, intégrés puis évalués quantitativement - performance, communications et exactitude numérique - sur les plateformes du programme NumPEx, en lien avec les partenaires numériciens. Selon les besoins, ce travail mobilisera modèles de coût, heuristiques d'ordonnancement et techniques d'apprentissage.
Le profil recherché
Solides bases en programmation C et en programmation parallèle (OpenMP, MPI, CUDA ou équivalent).
Connaissances en algèbre linéaire numérique et en algorithmique du calcul haute performance.
Capacité à intervenir dans une base de code existante, de taille importante et utilisée par une communauté externe.
Goût pour l'expérimentation : conception de protocoles de mesure, analyse critique des performances obtenues.
Autonomie, rigueur et curiosité scientifique ; aptitude à mener un travail de recherche sur trois ans.
Aptitude à travailler en collaboration avec des interlocuteurs de cultures scientifiques différentes (informatique système et analyse numérique).
Maîtrise de l'anglais scientifique, à l'écrit comme à l'oral.
Connaissances en arithmétique flottante et en analyse d'erreur.
Familiarité avec les supports d'exécution à base de tâches et les modèles de programmation associés.
Notions sur les représentations compressées de données (approximations à rang faible, matrices hiérarchiques).
Notions d'ordonnancement et d'optimisation combinatoire, voire d'apprentissage automatique appliqué aux heuristiques de décision.
Pratique des outils de développement collaboratif (Git, intégration continue) et de l'environnement Linux/Slurm.
Connaissances en algèbre linéaire numérique et en algorithmique du calcul haute performance.
Capacité à intervenir dans une base de code existante, de taille importante et utilisée par une communauté externe.
Goût pour l'expérimentation : conception de protocoles de mesure, analyse critique des performances obtenues.
Autonomie, rigueur et curiosité scientifique ; aptitude à mener un travail de recherche sur trois ans.
Aptitude à travailler en collaboration avec des interlocuteurs de cultures scientifiques différentes (informatique système et analyse numérique).
Maîtrise de l'anglais scientifique, à l'écrit comme à l'oral.
Connaissances en arithmétique flottante et en analyse d'erreur.
Familiarité avec les supports d'exécution à base de tâches et les modèles de programmation associés.
Notions sur les représentations compressées de données (approximations à rang faible, matrices hiérarchiques).
Notions d'ordonnancement et d'optimisation combinatoire, voire d'apprentissage automatique appliqué aux heuristiques de décision.
Pratique des outils de développement collaboratif (Git, intégration continue) et de l'environnement Linux/Slurm.