Pipelined Multithreading Generation in a Polyhedral Compiler - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Conference Papers Year :

Pipelined Multithreading Generation in a Polyhedral Compiler


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
Origin : Files produced by the author(s)

Dates and versions

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


  • HAL Id : hal-02456521 , version 1


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⟩
129 View
112 Download


Gmail Facebook Twitter LinkedIn More