Picos, A Hardware Task-Dependence Manager for Task-Based Dataflow Programming Models - Xubin Tan; Bosch, Jaume; Vidal, Miquel; Alvarez, Carlos; Jimenez-Gonzalez, Daniel; Ayguade, Eduard; Valero, Mateo (2017 International Conference on High Performance Computing & Simulation (HPCS), 2017)
Task-based programming Task-based programming models such as OpenMP, Intel TBB and OmpSs are widely used to extract high level of parallelism of applications executed on multi-core and manycore platforms. These programming models allow applications to be expressed as a set of tasks with dependences to drive their execution at runtime. While managing these dependences for task with coarse granularity proves to be highly beneficial, it introduces noticeable overheads when targeting fine-grained tasks, diminishing the potential speedups or even introducing performance losses. To overcome this drawback, we propose a hardware/software co-design Picos that manages inter-task dependences efficiently. In this paper we describe the main ideas of our proposal and a prototype implementation. This prototype is integrated with a parallel task- based programming model and evaluated with real executions in Linux embedded system with two ARM Cortex-A9 and a FPGA. When compared with a software runtime, our solution results in more than 1.8x speedup and 40% of energy savings with only 2 threads.