Pipelined Multithreading Generation in a Polyhedral Compiler - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Communication Dans Un Congrès Année : 2020

Pipelined Multithreading Generation in a Polyhedral Compiler

Résumé

State-of-the-art automatic polyhedral parallelizers extract and express parallelism as isolated parallel loops. For example, the Pluto high-level compiler generates and annotates loops with "#pragma omp parallel for" directives. Our goal is to take advantage of pipelined multithreading, a parallelization strategy allowing to address a wider class of codes, currently not handled by automatic parallelizers. Pipelined multithreading requires to interlace iterations of some loops in a controlled way that enables the parallel execution of these iterations. We achieve this using OpenMP clauses such as ordered and nowait. The sketch of our method is to: (1) schedule a SCoP using traditional techniques such as Pluto's algorithm; (2) detect potential pipelines in groups of sequential loops; (3) fine-tune the schedule; and (4) generate the resulting code. The fully automatic generation is ongoing work, yet we show on a small set of experiments how pipelined multi-threading permits to parallelize programs which would otherwise not be parallelized.
Fichier principal
Vignette du fichier
IMPACT_2020_paper_8.pdf (535.87 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-02456521 , version 1 (27-01-2020)

Identifiants

  • HAL Id : hal-02456521 , version 1

Citer

Harenome Razanajato, Cédric Bastoul, Vincent Loechner. Pipelined Multithreading Generation in a Polyhedral Compiler. IMPACT 2020, in conjunction with HiPEAC 2020, Jan 2020, Bologna, Italy. ⟨hal-02456521⟩
152 Consultations
122 Téléchargements

Partager

Gmail Facebook X LinkedIn More