Load balancing in a heterogeneous world: CPU-Xeon Phi co-execution of data-parallel kernels

Heterogeneous systems composed by a CPU and a set of different hardware accelerators are very compelling thanks to their excellent performance and energy consumption features. One of the most important problems of those systems is the workload distribution among their devices. This paper describes a...

Descripción completa

Detalles Bibliográficos
Autores: Nozal, Raúl|||0000-0002-4927-9829, Pérez Pavón, Borja|||0000-0002-3695-2906, Bosque Orero, José Luis|||0000-0002-7718-8449, Beivide Palacio, Ramón|||0000-0002-9591-7078
Tipo de recurso: artículo
Fecha de publicación:2019
País:España
Institución:Universidad de Cantabria (UC)
Repositorio:UCrea Repositorio Abierto de la Universidad de Cantabria
Idioma:inglés
OAI Identifier:oai:repositorio.unican.es:10902/35076
Acceso en línea:https://hdl.handle.net/10902/35076
Access Level:acceso abierto
Palabra clave:Heterogeneous computing
Co-execution CPU-Xeon Phi
Load balancing
OpenCL
Performance portability
Energy efficiency
Descripción
Sumario:Heterogeneous systems composed by a CPU and a set of different hardware accelerators are very compelling thanks to their excellent performance and energy consumption features. One of the most important problems of those systems is the workload distribution among their devices. This paper describes an extension of the Maat library to allow the co-execution of a data-parallel OpenCL kernel on a heterogeneous system composed by a CPU and an Intel Xeon Phi. Maat provides an abstract view of the heterogeneous system as well as set of load balancing algorithms to squeeze the performance out of the node. It automatically performs the data partition and distribution among the devices, generates the kernels and efficiently merges the partial outputs together. Experimental results show that this approach always outperforms the baseline with only a Xeon Phi, giving excellent performance and energy efficiency. Furthermore, it is essential to select the right load balancing algorithm because it has a huge impact in the system performance and energy consumption.