Exploiting two-level parallelism by aggregating computing resources in task-based applications over accelerator-based machines
INRIA, LaBRI, University of Bordeaux, Talence, France
hal-01181135, (31 July 2015)
@article{cojean2015exploiting,
title={Exploiting two-level parallelism by aggregating computing resources in task-based applications over accelerator-based machines},
author={Cojean, Terry and Guermouche, Abdou and Hugo, Andra and Namyst, Raymond and Wacrenier, Pierre-Andr{‘e}},
year={2015}
}
Computing platforms are now extremely complex providing an increasing number of CPUs and accelerators. This trend makes balancing computations between these heterogeneous resources performance critical. In this paper we tackle the task granularity problem and we propose aggregating several CPUs in order to execute larger parallel tasks and thus find a better equilibrium between the workload assigned to the CPUs and the one assigned to the GPUs. To this end, we rely on the notion of scheduling contexts in order to isolate the parallel tasks and thus delegate the management of the task parallelism to the inner scheduling strategy. We demonstrate the relevance of our approach through the dense Cholesky factorization kernel implemented on top of the StarPU task-based runtime system. We allow having parallel elementary tasks and using Intel MKL parallel implementation optimized through the use of the OpenMP runtime system. We show how our approach handles the interaction between the StarPU and the OpenMP runtime systems and how it exploits the parallelism of modern accelerator-based machines. We present experimental results showing that our solution outperforms state of the art implementations to reach a peak performance of 4.5 TFlop/s on a platform equipped with 20 CPU cores and 4 GPU devices.
August 5, 2015 by hgpu