Scheduling independent tasks on multi-cores with GPU accelerators

Abstract : More and more computers use hybrid architectures combining multi-core processors and hardware accelerators like GPUs (Graphics Process-ing Units). We present in this paper a new method for scheduling efficiently parallel applications with m CPUs and k GPUs, where each task of the appli-cation can be processed either on a core (CPU) or on a GPU. The objective is to minimize the maximum completion time (makespan). The corresponding scheduling problem is NP-hard, we propose an efficient approximation algo-rithm which achieves an approximation ratio of 4 3 + 1 3k . We first detail and analyze the method, based on a dual approximation scheme, that uses dynamic programming to balance evenly the load between the heterogeneous resources. Then, we present a faster approximation algorithm for a special case of the previous problem, where all the tasks are accelerated when affected to GPU, with a performance guarantee of 3 2 for any number of GPUs. We run some simulations based on realistic benchmarks and compare the solutions obtained by a relaxed version of the generic method to the one provided by a classical scheduling algorithm (HEFT). Finally, we present an implementation of the 4/3-approximation and its relaxed version on a classical linear algebra kernel into the scheduler of the xKaapi runtime system.
Liste complète des métadonnées

Cited literature [27 references]  Display  Hide  Download
Contributor : Grégory Mounié <>
Submitted on : Monday, November 10, 2014 - 11:29:35 AM
Last modification on : Thursday, April 4, 2019 - 10:18:05 AM
Document(s) archivé(s) le : Wednesday, February 11, 2015 - 3:28:17 PM


Files produced by the author(s)



Raphaël Bleuse, Safia Kedad-Sidhoum, Florence Monna, Grégory Mounié, Denis Trystram. Scheduling independent tasks on multi-cores with GPU accelerators. Concurrency and Computation: Practice and Experience, Wiley, 2015, 27 (6), pp.1625-1638. 〈10.1002/cpe.3359〉. 〈hal-01081625〉



Record views


Files downloads