A Proposal for Task-Generating Loops in OpenMP
A Proposal for Task-Generating Loops in OpenMP. In Proceedings of IWOMP 2013. 9th International Workshop on OpenMP (pp. 1-14). Canberra, AUSTRALIA.
Proposing a new construct to enable the distribution of a loop when executing in the context of an explicit task, a single or master construct.
Abstract
With the addition of the OpenMP* tasking model, programmers are able to improve and extend the parallelization opportunities of their codes. Programmers can also distribute the creation of tasks using a worksharing construct, which allows the generation of work to be parallelized. However, while it is possible to create tasks inside worksharing constructs, it is not possible to distribute work when not all threads reach the same worksharing construct. We propose a new worksharing-like construct that removes this restriction: the taskloop construct. With this new construct, we can distribute work when executing in the context of an explicit task, a single, or a master construct, enabling us to explore new parallelization opportunities in our applications. Although we focus our current work on evaluating expressiveness rather than performance evaluation, we present some initial performance results using a naive implementation for the new taskloop construct based on a lazy task instantiation mechanism.