Auto-tuned OpenCL kernel co-execution in OmpSs for heterogeneous systems
Ver/ Abrir
Registro completo
Mostrar el registro completo DCAutoría
Pérez Pavón, Borja; Stafford Fernández, Esteban; Bosque Orero, José Luis; Beivide Palacio, Ramón; Mateo, S.; Teruel, X.; Martorell, X.; Ayguadé, E.Fecha
2019Derechos
Attribution-NonCommercial-NoDerivatives 4.0 International
Publicado en
Journal of Parallel and Distributed Computing, Volume 125, March 2019, Pages 45-57
Editorial
Elsevier
Enlace a la publicación
Palabras clave
Heterogeneous systems
OmpSs programming model
OpenCL
Co-execution
Resumen/Abstract
The emergence of heterogeneous systems has been very notable recently. The nodes of the most powerful computers integrate several compute accelerators, like GPUs. Profiting from such node configurations is not a trivial endeavour. OmpSs is a framework for task based parallel applications, that allows the execution of OpenCl kernels on different compute devices. However, it does not support the co-execution of a single kernel on several devices. This paper presents an extension of OmpSs that rises to this challenge, and presents Auto-Tune, a load balancing algorithm that automatically adjusts its internal parameters to suit the hardware capabilities and application behavior. The extension allows programmers to take full advantage of the computing devices with negligible impact on the code. It takes care of two main issues. First, the automatic distribution of datasets and the management of device memory address spaces. Second, the implementation of a set of load balancing algorithms to adapt to the particularities of applications and systems. Experimental results reveal that the co-execution of single kernels on all the devices in the node is beneficial in terms of performance and energy consumption, and that Auto-Tune gives the best overall results.