Static Loop Parallelization Decision Using Template Metaprogramming - Archive ouverte HAL
Communication Dans Un Congrès Année : 2018

Static Loop Parallelization Decision Using Template Metaprogramming

Résumé

This article proposes to use C++ template metaprogramming techniques to decide at compile-time which parts of a code sequence in a loop can be parallelized. The approach focuses on characterizing the way a variable is accessed in a loop (reading or writing), first to decide how the loop should be split to enable the analysis for parallelization on each part, and then to decide if the iterations inside each loop are independent so that they can be run in parallel. The conditions that enable the parallelization of a loop are first explained to justify the proposed decision algorithm exposed. Then, a C++ library-based solution is presented that uses expression templates to get the relevant information necessary for the parallelization decision of a loop, and metaprograms to decide whether to parallelize the loop and generate a parallel code.
Fichier principal
Vignette du fichier
hpcs2018_article.pdf (439.76 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)

Dates et versions

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

Identifiants

Citer

Alexis Pereda, David R.C. Hill, Claude Mazel, Bruno Bachelet. Static Loop Parallelization Decision Using Template Metaprogramming. IEEE International Conference on High Performance Computing and Simulation (HPCS), Jul 2018, Orléans, France. pp.1015-1021, ⟨10.1109/HPCS.2018.00159⟩. ⟨hal-01848372⟩
225 Consultations
191 Téléchargements

Altmetric

Partager

More