Combining Data and Computation Distribution Directives for Hybrid Parallel Programming: A Transformation System

Rachid Habel, Frédérique Silber-Chaussumier, François Irigoin, Elisabeth Brunet, François Trahay

Research output: Contribution to journalArticlepeer-review

Abstract

This paper describes dSTEP, a directive-based programming model for hybrid shared and distributed memory machines. The originality of our work is the definition and an implementation of a unified high-level programming model addressing both data and computation distributions, providing a particularly fine control of the computation. The goal is to improve the programmer productivity while providing good performances in terms of execution time and memory usage. We define a generic compilation scheme for computation mapping and communication generation. We implement the solution in a source-to-source compiler together with a runtime library. We provide a series of optimizations to improve the performance of the generated code, with a special focus on reducing the communications time. We evaluate our solution on several scientific kernels as well as on the more challenging NAS BT benchmark, and compare our results with the hand written Fortran MPI and UPC implementations. The results show first that our solution allows to make explicit the non trivial parallel execution of the NAS BT benchmark using the dSTEP directives. Second, the results show that our generated MPI+OpenMP BT program runs with a 83.35 speedup over the original NAS OpenMP C benchmark on a hybrid cluster composed of 64 quadricores (256 cores). Overall, our solution dramatically reduces the programming effort while providing good time execution and memory usage performances. This programming model is suitable for a large variety of machines as multi-core and accelerator clusters.

Original languageEnglish
Pages (from-to)1268-1295
Number of pages28
JournalInternational Journal of Parallel Programming
Volume44
Issue number6
DOIs
Publication statusPublished - 1 Dec 2016

Keywords

  • Distributed-memory
  • MPI
  • OpenMP
  • Optimization
  • Shared-memory
  • Source-to-source transformation

Fingerprint

Dive into the research topics of 'Combining Data and Computation Distribution Directives for Hybrid Parallel Programming: A Transformation System'. Together they form a unique fingerprint.

Cite this