Unrolling Loops Containing Task Parallelism

13 years 11 months ago
Unrolling Loops Containing Task Parallelism
Classic loop unrolling allows to increase the performance of sequential loops by reducing the overheads of the non-computational parts of the loop. Unfortunately, when the loop contains parallelism inside most compilers will ignore it or perform a na¨ıve transformation. We propose to extend the semantics of the loop unrolling transformation to cover loops that contain task parallelism. In these cases, the transformation will try to aggregate the multiple tasks that appear after a classic unrolling phase to reduce the overheads per iteration. We present an implementation of such extended loop unrolling for OpenMP tasks with two phases: a classical unroll followed by a task aggregation phase. Our aggregation technique covers the special cases where task parallelism appears inside branches or where the loop is uncountable. Our experimental results show that using this extended unroll allows loops with fine-grained tasks to reduce the overheads associated with task creation and obtain a...
Roger Ferrer, Alejandro Duran, Xavier Martorell, E
Added 26 Jul 2010
Updated 26 Jul 2010
Type Conference
Year 2009
Where LCPC
Authors Roger Ferrer, Alejandro Duran, Xavier Martorell, Eduard Ayguadé
Comments (0)