Thèse soutenue

Programmation haute performance pour architectures hybrides

FR  |  
EN
Auteur / Autrice : Rachid Habel
Direction : François Irigoin
Type : Thèse de doctorat
Discipline(s) : Informatique temps réel, robotique et automatique
Date : Soutenance le 19/11/2014
Etablissement(s) : Paris, ENMP
Ecole(s) doctorale(s) : École doctorale Sciences des métiers de l'ingénieur (Paris)
Partenaire(s) de recherche : Laboratoire : Centre de recherche en informatique (Fontainebleau, Seine et Marne)
Jury : Président / Présidente : Frédéric Desprez
Examinateurs / Examinatrices : François Irigoin, Jean-Luc Lamotte, Frédérique Silber-Chaussumier
Rapporteurs / Rapporteuses : Cédric Bastoul, Stef Graillat

Mots clés

FR  |  
EN

Résumé

FR  |  
EN

Les architectures parallèles hybrides constituées d'un grand nombre de noeuds de calcul multi-coeurs/GPU connectés en réseau offrent des performances théoriques très élevées, de l'ordre de quelque dizaines de TeraFlops. Mais la programmation efficace de ces machines reste un défi à cause de la complexité de l'architecture et de la multiplication des modèles de programmation utilisés. L'objectif de cette thèse est d'améliorer la programmation des applications scientifiques denses sur les architectures parallèles hybrides selon trois axes: réduction des temps d'exécution, traitement de données de très grande taille et facilité de programmation. Nous avons pour cela proposé un modèle de programmation à base de directives appelé DSTEP pour exprimer à la fois la distribution des données et des calculs. Dans ce modèle, plusieurs types de distribution de données sont exprimables de façon unifiée à l'aide d'une directive "dstep distribute" et une réplication de certains éléments distribués peut être exprimée par un "halo". La directive "dstep gridify" exprime à la fois la distribution des calculs ainsi que leurs contraintes d'ordonnancement. Nous avons ensuite défini un modèle de distribution et montré la correction de la transformation de code du domaine séquentiel au domaine distribué. À partir du modèle de distribution, nous avons dérivé un schéma de compilation pour la transformation de programmes annotés de directives DSTEP en des programmes parallèles hybrides. Nous avons implémenté notre solution sous la forme d'un compilateur intégré à la plateforme de compilation PIPS ainsi qu'une bibliothèque fournissant les fonctionnalités du support d'exécution, notamment les communications. Notre solution a été validée sur des programmes de calcul scientifiques standards tirés des NAS Parallel Benchmarks et des Polybenchs ainsi que sur une application industrielle.