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.
Type de document :
Thèse
Autre [cs.OH]. Université de Bordeaux, 2018. Français. 〈NNT : 2018BORD0041〉
Liste complète des métadonnées

Littérature citée [3 références]  Voir  Masquer  Télécharger

https://tel.archives-ouvertes.fr/tel-01816341
Contributeur : Abes Star <>
Soumis le : vendredi 15 juin 2018 - 10:32:23
Dernière modification le : samedi 16 juin 2018 - 01:07:44
Document(s) archivé(s) le : lundi 17 septembre 2018 - 11:19:44

Fichier

COJEAN_TERRY_2018.pdf
Version validée par le jury (STAR)

Identifiants

  • 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〉

Partager

Métriques

Consultations de la notice

170

Téléchargements de fichiers

74