Thèse soutenue

Des abstractions simples, sûres et efficaces pour la communication et le streaming dans le calcul parallèle

FR  |  
EN
Auteur / Autrice : Amaury Maillé
Direction : Ludovic Henrio
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 07/07/2023
Etablissement(s) : Lyon, École normale supérieure
Ecole(s) doctorale(s) : École doctorale en Informatique et Mathématiques de Lyon (2009-....)
Partenaire(s) de recherche : Laboratoire : Laboratoire de l'informatique du parallélisme (Lyon ; 1988-....) - Compilation et Analyse, Logiciel et Matériel
Jury : Président / Présidente : Marc Pouzet
Examinateurs / Examinatrices : Ludovic Henrio, Marc Pouzet, Samuel Thibault, Françoise Baude, Matthieu Moy
Rapporteurs / Rapporteuses : Samuel Thibault, Françoise Baude

Résumé

FR  |  
EN

Depuis la fin du scaling de Dennard, il s’est avéré que de futurs gains de performance viendront du calcul parallèle, et plus particulièrement de l’utilisation d’architectures multicœur. Aussi bien programmer qu’obtenir les performances optimales sur de telles architectures s’est historiquement révélé difficile.De nombreux outils ont été créés afin d’aider les programmeurs à écrire des programmes corrects et performants. Les futurs en sont un exemple : une abstraction qui permet à une tâche de se synchroniser avec la fin d’une autre tâche et de récupérer sa valeur calculée. Les files sont un autre de ces outils : des canaux de communication qui permettent à des tâches, appelées producteurs, de stocker des valeurs dans un espace mémoire partagé, dans lequel d’autres tâches, appelées consommateurs, pourront récupérer ces valeurs, le tout de façon sûre.Dans ce manuscrit nous étudions et améliorons aussi bien les futurs que les files sous trois aspects : sûreté, efficacité et simplicité. Nous fournissons les dataflow explicit futures en tant que bibliothèque. Il s’agit d’une évolution des futurs qui offre aux programmeurs une plus grande expressivité et leur permet d’écrire plus facilement des programmes qui manipulent les futurs. Une seconde contribution, FIFOPlus, améliore les files. FIFOPlus est une file qui embarque un modèle analytique afin de reconfigurer dynamiquement sa granularité de synchronisation. Cette reconfiguration se base sur le calcul d’une approximation du temps nécessaire pour effectuer un transfert de données selon une granularité de synchronisation. Contrairement à plusieurs outils pré-existants, l’analyse est simple et effectuée à l’exécution, ce qui rend l’outil simple d’utilisation.