A Context-aware Primitive for Nested Recursive Parallelism

Herbert Jordan, Peter Thoman, Peter Zangerl, Thomas Heller and Thomas Fahringer, A Context-aware Primitive for Nested Recursive Parallelism, IWMSE Workshop, Euro-Par 2016, Grenoble, FranceAugust 24-26, 2016.

Euro-Par 2016 


Abstract. Nested recursive parallel applications constitute an important super-class of conventional, at parallel codes. For this class, parallel libraries utilising the concept of tasks have been widely adapted. However, the provided abstract task creation and synchronisation interfaces force corresponding implementations to focus their attention to individual task creation and synchronisation points { unaware of their relation to each other { thereby losing optimisation potential. Within this paper, we present a novel interface for task level parallelism, enabling implementations to grasp and manipulate the context of task creation and synchronisation points { in particular for nested recursive parallelism. Furthermore, as a concrete application, we demonstrate the interface's capability to reduce parallel overhead within applications based on a reference implementation utilising C++14 template meta programming techniques to synthesise multiple versions of a parallel task during the compilation process. To demonstrate its effectiveness  we evaluate the impact of our approach on the performance of a series of eight task parallel benchmarks. For those, our approach achieves substantial speed-ups over state of the art solutions, in particular for use cases exhibiting fine grained tasks.

This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 671603

Contact Details

General Coordinator

Thomas Fahringer

Scientific Coordinator

Herbert Jordan