Composabilité des modèles d'exécution pour l'algèbre linéaire (Doctorat CONCACE)
Table des matières
1. Contexte
La séparation des préoccupations (separation of concerns en anglais), est "un principe de conception visant à segmenter un programme informatique en plusieurs parties, afin que chacune d’entre elles isole et gère un aspect précis de la problématique générale" [1]. Quand les préoccupations sont clairement séparées, les différentes parties du code peuvent être réutilisées, étendues ou modifiées indépendamment des autres [1]. Une telle conception modulaire permet en particulier de focaliser le développement d'une bibliothèque sur son cœur de métier et de s'appuyer sur des bibliothèques tierces pour le reste des tâches.
Largement reconnue comme une bonne pratique et mise en œuvre dans l'ingénierie logicielle en général [1], ce principe est pourtant peu suivi dans le cadre du calcul haute performance (HPC). En effet, d'une part, la quête de performance requiert souvent un très haut niveau de coopération entre les différentes parties du code. D'autre part, la difficulté du déploiement du code sur des super-calculateurs peut décourager l'emploi de trop nombreuses bibliothèques tierces dont l'inter-compatibilité peut être difficile à garantir.
L'équipe-projet concace d'Inria Bordeaux s'intéresse à la composabilité numérique et parallèle en recourant aux principes de séparation de préoccupations dans un cadre HPC, et plus précisément pour le traitement de systèmes linéaires de grande taille. Elle développe le code composyx à cette fin.
2. Objectif
Actuellement, composyx embarque son propre moteur d'exécution minimaliste basé sur mpi, cf. [2]. L'objectif de la thèse est de développer un nouveau modèle d'exécution à base de tâches [3].
De surcroît, il s'agira de séparer clairement le modèle de programmation de composyx de son modèle d'exécution de telle sorte que, sans qu'il ne soit nécessaire de changer la programmation des algorithmes numériques, composyx puisse in fine recourir aussi bien au moteur pré-existant basé sur mpi qu'au moteur d'exécution à base de tâches qui sera créé pendant le doctorat.
La performance et la versatilité du modèle seront évalués sur les algorithmes numériques existants de composyx ainsi que sur de nouveaux algorithmes d'algèbre linéaire dense et creuse qui seront également développés dans le cadre du doctorat.
3. Cadre du doctorat
Le doctorat s'effectuera à l'Inria Bordeaux au sein de l'équipe-projet concace.
Encadrants:
- Emmanuel Agullo (Emmanuel.Agullo@inria.fr);
- Luc Giraud (Luc.Giraud@inria.fr);
- Gilles Marait (Gilles.Marait@inria.fr).
4. Notes
Mots-clés: modèle d'exécution, moteur d'exécution, composabilité, expression parallèle, algèbre linéaire numérique, matrices denses, matrices creuses
Compétences requises: parallélisme, algorithmique, C++20, algèbre linéaire numérique.
Références:
[1] https://fr.wikipedia.org/wiki/S%C3%A9paration_des_pr%C3%A9occupations
[2] https://composyx.gitlabpages.inria.fr/composyx/
[3] Emmanuel Agullo, Olivier Aumage, Mathieu Faverge, Nathalie Furmento, Florent Pruvost, Marc Sergent, Samuel Thibault. Scalability of a task-based runtime system for dense linear algebra applications. https://hal.inria.fr/hal-01618526/file/tpds14.pdf