Skip to Main content Skip to Navigation
Theses

Programmation des architectures hétérogènes à l'aide de tâches divisibles ou modulables

Résumé : Les ordinateurs équipés d'accélérateurs sont omniprésents parmi les machines de calcul haute performance. Cette évolution a entraîné des efforts de recherche pour concevoir des outils permettant de programmer facilement des applications capables d'utiliser toutes les unités de calcul de ces machines. Le support d'exécution StarPU développé dans l'équipe STORM de INRIA Bordeaux, a été conçu pour servir de cible à des compilateurs de langages parallèles et des bibliothèques spécialisées (algèbre linéaire, développements de Fourier, etc.). Pour proposer la portabilité des codes et des performances aux applications, StarPU ordonnance des graphes dynamiques de tâches de manière efficace sur l’ensemble des ressources hétérogènes de la machine. L’un des aspects les plus difficiles, lors du découpage d’une application en graphe de tâches, est de choisir la granularité de ce découpage, qui va typiquement de pair avec la taille des blocs utilisés pour partitionner les données du problème. Les granularités trop petites ne permettent pas d’exploiter efficacement les accélérateurs de type GPU, qui ont besoin de peu de tâches possédant un parallélisme interne de données massif pour « tourner à plein régime ». À l’inverse, les processeurs traditionnels exhibent souvent des performances optimales à des granularités beaucoup plus fines. Le choix du grain d’un tâche dépend non seulement du type de l'unité de calcul sur lequel elle s’exécutera, mais il a en outre une influence sur la quantité de parallélisme disponible dans le système : trop de petites tâches risque d’inonder le système en introduisant un surcoût inutile, alors que peu de grosses tâches risque d’aboutir à un déficit de parallélisme. Actuellement, la plupart des approches pour solutionner ce problème dépendent de l'utilisation d'une granularité des tâches intermédiaire qui ne permet pas un usage optimal des ressources aussi bien du processeur que des accélérateurs. L'objectif de cette thèse est d'appréhender ce problème de granularité en agrégeant des ressources afin de ne plus considérer de nombreuses ressources séparées mais quelques grosses ressources collaborant à l'exécution de la même tâche. Un modèle théorique existe depuis plusieurs dizaines d'années pour représenter ce procédé : les tâches parallèles. Le travail de cette thèse consiste alors en l'utilisation pratique de ce modèle via l'implantation de mécanismes de gestion de tâches parallèles dans StarPU et l'implantation ainsi que l'évaluation d'ordonnanceurs de tâches parallèles de la littérature. La validation du modèle se fait dans le cadre de l'amélioration de la programmation et de l'optimisation de l'exécution d'applications numériques au dessus de machines de calcul modernes.
Document type :
Theses
Complete list of metadatas

Cited literature [72 references]  Display  Hide  Download

https://tel.archives-ouvertes.fr/tel-01816341
Contributor : Abes Star :  Contact
Submitted on : Friday, June 15, 2018 - 10:32:23 AM
Last modification on : Thursday, July 23, 2020 - 3:56:59 PM
Document(s) archivé(s) le : Monday, September 17, 2018 - 11:19:44 AM

File

COJEAN_TERRY_2018.pdf
Version validated by the jury (STAR)

Identifiers

  • HAL Id : tel-01816341, version 1

Collections

Citation

Terry Cojean. Programmation des architectures hétérogènes à l'aide de tâches divisibles ou modulables. Autre [cs.OH]. Université de Bordeaux, 2018. Français. ⟨NNT : 2018BORD0041⟩. ⟨tel-01816341⟩

Share

Metrics

Record views

417

Files downloads

281