Modèle de programmation de haut niveau pour la parallélisation expicite et automatique : application aux architectures multicoeurs

Résumé : La prolifération des architectures multi-coeurs est source d’unepression importante pour les developpeurs, qui doivent chercherà paralléliser leurs applications de manière à profiter au mieux deces plateformes. Malheureusement, les modèles de programmationde bas niveau amplifient les difficultés inhérentes à la conceptiond’applications complexes et parallèles. Il existe donc une attentepour des modèles de programmation de plus haut niveau, quipuissent simplifier la vie des programmeurs de manière significative,tout en proposant des abstractions suffisantes pour absorberl’hétérogénéité des architectures matérielles.Contrairement à une multitude de modèles de programmation parallèlequi introduisent de nouveaux langages, annotations ou étendentdes langages existants et requièrent donc des compilateurs spécialisés,nous exploitons ici le potentiel du language C++ standardet traditionnel. En particulier nous avons recours à ses capacitésen terme de meta-programmation, afin de fournir au programmeurune interface de programmation parallèle simple et directe. Cetteinterface autorise le programmeur à exprimer le parallélismede son application au prix d’une altération négligeable du codeséquentiel initial. Un runtime intelligent se charge d’extraire touteinformation relative aux dépendances de données entre tâches,ainsi que celles relatives à l’ordonnancement. Nous montronscomment ce runtime est à même d’exploiter ces informations dansle but de détecter et protéger les données partagées, puis réaliserun ordonnancement prenant en compte les particularités des caches.L’implémentation initiale de notre modèle de programmation est unelibrairie C++ pure appelée XPU. XPU est conÃ˘gue dans le but defaciliter l’explicitation, par le programmeur, du parallélisme applicatif.Une seconde réalisation appelée FATMA doit être considérée commeune extension d’XPU qui permet une détection automatique desdépendances dans une séquence de tâches : il s’agit donc de parallélisationautomatique, sans recours à quelque outil que se soit,excepté un compilateur C++ standard. Afin de démontrer le potentielde notre approche, nous utilisons ces deux outils –XPU et FATMA–pour paralléliser des problèmes populaires, ainsi que des applicationsindustrielles réelles. Nous montrons qu’en dépit de leur abstractionélevée, nos modèles de programmation présentent des performancescomparables à des modèles de programmation de basniveau,et offrent un meilleur compromis productivité-performance.
Type de document :
Thèse
Langage de programmation [cs.PL]. Université de Bretagne Sud, 2014. Français. 〈NNT : 2014LORIS350〉
Liste complète des métadonnées

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

https://tel.archives-ouvertes.fr/tel-01207434
Contributeur : Abes Star <>
Soumis le : mercredi 30 septembre 2015 - 18:09:07
Dernière modification le : mardi 16 janvier 2018 - 15:54:20
Document(s) archivé(s) le : jeudi 31 décembre 2015 - 11:02:06

Fichier

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

Identifiants

  • HAL Id : tel-01207434, version 1

Citation

Nader Khammassi. Modèle de programmation de haut niveau pour la parallélisation expicite et automatique : application aux architectures multicoeurs. Langage de programmation [cs.PL]. Université de Bretagne Sud, 2014. Français. 〈NNT : 2014LORIS350〉. 〈tel-01207434〉

Partager

Métriques

Consultations de la notice

383

Téléchargements de fichiers

310