Thèse soutenue

Ordonnancement de graphes de tâches sur des plates-formes de calcul modernes

FR  |  
EN
Auteur / Autrice : Bertrand Simon
Direction : Frédéric Vivien
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 04/07/2018
Etablissement(s) : Lyon
Ecole(s) doctorale(s) : École doctorale en Informatique et Mathématiques de Lyon (2009-....)
Partenaire(s) de recherche : établissement opérateur d'inscription : École normale supérieure de Lyon (2010-...)
Laboratoire : Laboratoire de l'informatique du parallélisme (Lyon ; 1988-....) - Optimisation des ressources : modèles, algorithmes et ordonnancement
Jury : Président / Présidente : Uwe Schwiegelshohn
Examinateurs / Examinatrices : Frédéric Vivien, Uwe Schwiegelshohn, Safia Kedad Sidhoum, Claire Hanen, Loris Marchal, Sascha Hunold
Rapporteurs / Rapporteuses : Safia Kedad Sidhoum, Claire Hanen

Mots clés

FR  |  
EN

Résumé

FR  |  
EN

Cette thèse porte sur trois thématiques principales liées à l'ordonnancement de graphes de tâches sur des plates-formes de calcul modernes. Un graphe de tâches est une modélisation classique d'un programme à exécuter, par exemple une application de calcul scientifique. La décomposition d'une application en différentes tâches permet d'exploiter le parallélisme potentiel de cette application sans adapter le programme à la plate-forme de calcul visée. Le graphe décrit ces tâches ainsi que leurs dépendances, certaines tâches ne pouvant être exécutées avant que d'autres ne soient terminées. L'exécution d'une application est alors déterminée par un ordonnancement du graphe, calculé par un logiciel dédié, qui décrit entre autres quelles ressources sont allouées à chaque tâche et à quel moment. Les trois thèmes étudiés sont les suivants: exploiter le parallélisme intrinsèque des tâches, utiliser des accélérateurs tels que des GPU, et prendre en compte une mémoire limitée.Certaines applications présentent deux types de parallélisme que l'on peut exploiter: plusieurs tâches peuvent être exécutées simultanément, et chaque tâche peut être exécutée sur plusieurs processeurs afin de réduire son temps de calcul. Nous proposons et étudions deux modèles permettant de régir ce temps de calcul, afin d'exploiter ces deux types de parallélisme.Nous étudions ensuite comment utiliser efficacement des accélérateurs de calcul tels que des GPU, dans un contexte dynamique où les futures tâches à ordonnancer ne sont pas connues. La difficulté principale consiste à décider si une tâche doit être exécutée sur l'un des rares accélérateurs disponibles ou sur l'un des nombreux processeurs classiques. La dernière thématique abordée concerne le problème d'une mémoire principale limitée, et le recours à des transferts de données coûteux. Nous avons traité ce problème via deux scénarios. S'il est possible d'éviter de tels transferts, nous avons proposé de modifier le graphe afin de garantir que toute exécution ne dépasse pas la mémoire disponible, ce qui permet d'ordonnancemer les tâches dynamiquement au moment de l'exécution. Si tout ordonnancement nécessite des transferts, nous avons étudié le problème consistant à minimiser leur quantité.L'étude de ces trois thèmes a permis de mieux comprendre la complexité de ces problèmes. Les solutions proposées dans le cadre d'étude théorique pourront influencer de futures implémentations logicielles.