Task-block identification and movement for layer-based scheduling algorithms
Raphael Kunis, Gudula Rünger · 2010
The programming with parallel tasks leads to task graphs with dependencies representing a parallel program. Scheduling algorithms are employed to find an efficient execution order of the parallel tasks. A large variety of scheduling algorithms exists, including layer-based scheduling algorithms for homogeneous target platforms that build consecutive layers of independent parallel tasks and schedule each layer separately. The resulting schedules leave room for optimization. This article presents an optimization for arbitrary layer-based scheduling algorithms by adding a movement phase which shifts blocks of tasks to previous layer-schedules. Especially, a block identification algorithm is proposed, which identifies suitable blocks of tasks in arbitrary layer-schedules and, thus, allows the application of the movement of blocks to a wide range of layer-based scheduling algorithms. The block identification and the movement algorithm are applied to two scheduling algorithms and show good performance improvements.