Parallélisme de tâches et localité de données dans un contexte multi-modèle de programmation pour supercalculateurs hiérarchiques et hétérogènes
Institution:
Paris 6Disciplines:
Directors:
Abstract EN:
Les contributions de cette thèse s'appuient sur un modèle de programmation par tâches, dont l'originalité réside dans l'ajustement de la quantité de calcul en fonction de l'unité d'exécution ciblée. Ce modèle de programmation est particulièrement adapté à un équilibrage de charge dynamique entre des ressources de calcul hétérogènes. Il favorise une meilleure exploitation des unités de traitement en offrant une meilleure réactivité en présence de variations des temps d'exécution, lesquelles peuvent être générées par des codes de calcul irréguliers ou des mécanismes matériels difficilement prévisibles. De plus, la sémantique des tâches de calcul facilite le recours à des mécanismes de gestion automatisée des opérations de cohérence des mémoires déportées et décharge les développeurs de cette tâche fastidieuse et source d'erreurs. Nous avons développé la plateforme d'exécution H3LMS afin d'agréger les propositions de cette thèse. Cette plateforme est intégrée à l'environnement de programmation MPC afin de faciliter la cohabitation de plusieurs modèles de programmation pour une meilleure exploitation des grappes de calcul. H3LMS permet, entre autres, de mieux aiguiller les tâches vers les unités de traitement appropriées en réduisant la quantité de coûteux accès distants au sein d'un nœud de calcul. Ces travaux s'intéressent également à l'adaptation de codes de simulation existants, conçus à l'origine pour exploiter exclusivement des processeurs traditionnels et pouvant comporter plusieurs centaines de milliers de lignes de code. Les performances de la solution développée sont évaluées sur la bibliothèque Linpack et par une application numérique réaliste du CEA.
Abstract FR:
This thesis makes several distinct contributions which rely on a dedicated task-based programming model. The novelty of this model resides in a dynamic adjustment of the quantity of embedded operations depending on the targeted processing unit. It is particularly well adapted to dynamically balance workloads between heterogeneous processing units. It better harnesses those units by strengthening responsiveness in the presence of execution times fluctuations induced by irregular codes or unpredictable hardware mechanisms. Moreover, the semantics and programming interface of the task-parallel model facilitates the use of automated behaviors such as data coherency of deported memories. It alleviates the burden of developers by taking care of this tedious work and which can be a source of errors. We developed H3LMS an execution platform designed to combine the propositions detailed in the thesis. The platform is integrated to the MPC programming environment in order to enhance cohabitation with other programming models and thus better harness clusters. H3LMS is elaborated to improve task scheduling between homogeneous and heterogeneous processing units by reducing the need to resort to distant accesses in a cluster node. This thesis also focuses on the adaptation of legacy codes which are originally designed to exploit traditional processors and may also consist of hundreds of thousand lines of code. The performance of this solution is evaluated on the Linpack library and on a legacy numerical application from the CEA.