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

Abstract : The continuous proliferation of multicore architectures has placeddevelopers under great pressure to parallelize their applicationsaccordingly with what such platforms can offer. Unfortunately,traditional low-level programming models exacerbate the difficultiesof building large and complex parallel applications. High-level parallelprogramming models are in high-demand as they reduce the burdenson programmers significantly and provide enough abstraction toaccommodate hardware heterogeneity. In this thesis, we proposea flexible parallelization methodology, and we introduce a newtask-based parallel programming model designed to provide highproductivity and expressiveness without sacrificing performance.Our programming model aims to ease expression of both sequentialexecution and several types of parallelism including task, data andpipeline parallelism at different granularity levels to form a structuredhomogeneous programming model.Contrary to many parallel programming models which introducenew languages, compiler annotations or extend existing languagesand thus require specialized compilers, extra-hardware or virtualmachines..., we exploit the potential of the traditional standardC++ language and particularly its meta-programming capabilities toprovide a light-weight and smart parallel programming interface. Thisprogramming interface enable programmer to express parallelismat the cost of a little amount of extra-code while reuse its legacysequential code almost without any alteration. An intelligent run-timesystem is able to extract transparently many information on task-datadependencies and ordering. We show how the run-time system canexploit these valuable information to detect and protect shared dataautomatically and perform cache-aware scheduling.The initial implementation of our programming model is a pure C++library named "XPU" and is designed for explicit parallelism specification.A second implementation named "FATMA" extends XPU andexploits the transparent task dependencies extraction feature to provideautomatic parallelization of a given sequence of tasks withoutneed to any specific tool apart a standard C++ compiler. In order todemonstrate the potential of our approach, we use both of the explicitand automatic parallel programming models to parallelize popularproblems as well as real industrial applications. We show thatdespite its high abstraction, our programming models provide comparableperformances to lower-level programming models and offersa better productivity-performance tradeoff.
Document type :
Theses
Complete list of metadatas

Cited literature [145 references]  Display  Hide  Download

https://tel.archives-ouvertes.fr/tel-01207434
Contributor : Abes Star <>
Submitted on : Wednesday, September 30, 2015 - 6:09:07 PM
Last modification on : Thursday, October 17, 2019 - 12:36:15 PM
Long-term archiving on : Thursday, December 31, 2015 - 11:02:06 AM

File

2014theseKhammassiN2.pdf
Version validated by the jury (STAR)

Identifiers

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

Share

Metrics

Record views

511

Files downloads

421