Skip to Main content Skip to Navigation
Conference papers

Pipelined Multithreading Generation in a Polyhedral Compiler

Harenome Razanajato 1, 2 Cédric Bastoul 1, 2 Vincent Loechner 2, 1
2 CAMUS - Compilation pour les Architectures MUlti-coeurS
Inria Nancy - Grand Est, ICube - Laboratoire des sciences de l'ingénieur, de l'informatique et de l'imagerie
Abstract : 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.
Complete list of metadatas

Cited literature [21 references]  Display  Hide  Download
Contributor : Vincent Loechner <>
Submitted on : Monday, January 27, 2020 - 1:53:11 PM
Last modification on : Tuesday, January 28, 2020 - 1:35:23 AM


Files produced by the author(s)


  • 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⟩



Record views


Files downloads