EN FR
EN FR


Section: New Results

Parallel Polyhedral Regions

Participants : Cédric Bastoul, Vincent Loechner, Harenome Ranaivoarivony-Razanajato.

Nowadays best performing automatic parallelizers and data locality optimizers for static control programs rely on the polyhedral model. State-of-the-art polyhedral compilers generate only one type of parallelism when targeting multicore shared memory architectures: parallel loops via the OpenMP omp parallel for directive.

We propose to explore how a polyhedral compiler could exploit parallel region constructs. Instead of initializing a new set of threads each time the code enters a parallel loop and synchronizing them when exiting it, the threads are initialized once for all at the entrance of the region of interest, and synchronized only when it is necessary.

Technically, the whole region containing parallel loops is embedded in an omp parallel construct. Inside the parallel region, the single construct is used when some code needs to be executed sequentially; the for construct is used to distribute loop iterations between threads. Thanks to the power of the polyhedral dependence analysis, we compute when it is valid to add the optional nowait clause, to omit the implicit barrier at the end of a worksharing construct and thus to reduce even more control overhead.

This work was published and presented at the HiPC 2017 conference [19].