Modeling Algorithmic Skeletons for Automatic Parallelization Using Template Metaprogramming - Archive ouverte HAL
Communication Dans Un Congrès Année : 2019

Modeling Algorithmic Skeletons for Automatic Parallelization Using Template Metaprogramming

Résumé

This article presents a framework for algorithmic skeletons that aims at representing a whole algorithm, both its sequential and possibly parallelizable parts, in order to enable making global decisions about its implementation. With our modeling, a skeleton is described by an algorithmic structure and a data flow graph, built from the composition of bones and other skeletons. We introduce this notion of bones which represents elementary sequential or parallel patterns whose implementation is available (from the library or designed by well-aware developers), whereas skeletons are automatically implemented from their description. The proposed design, implemented with Template Metaprogramming (TMP), able to operate both at compile and run-time, allows implementing new bones, describing new skeletons, or simply the instantiation of a skeleton by providing muscles in the form of sequential functions. Once a skeleton is instantiated, one can decide to generate either a sequential or a parallel code of the algorithm. To optimize the parallelization process, we propose orchestrators, in the form of C++ templates that can analyze a skeleton at compile-time and tune its execution. A C++ library-based solution is presented, and its mechanisms and usage are illustrated by implementing a GRASPxELS algorithm, a common OR metaheuristic, that enables two levels of parallelism. Performance results are shown to assert that this approach presents negligible run-time overhead.
Fichier principal
Vignette du fichier
hpcs2019_article.pdf (487.28 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-02277603 , version 1 (29-12-2020)

Identifiants

Citer

Alexis Pereda, David R.C. Hill, Claude Mazel, Bruno Bachelet. Modeling Algorithmic Skeletons for Automatic Parallelization Using Template Metaprogramming. IEEE International Conference on High Performance Computing and Simulation (HPCS), Jul 2019, Dublin, Ireland. pp.265-272, ⟨10.1109/HPCS48598.2019.9188128⟩. ⟨hal-02277603⟩
140 Consultations
116 Téléchargements

Altmetric

Partager

More