English

EngineCL: Usability and Performance in Heterogeneous Computing

Distributed, Parallel, and Cluster Computing 2020-10-26 v2

Abstract

Heterogeneous systems have become one of the most common architectures today, thanks to their excellent performance and energy consumption. However, due to their heterogeneity they are very complex to program and even more to achieve performance portability on different devices. This paper presents EngineCL, a new OpenCL-based runtime system that outstandingly simplifies the co-execution of a single massive data-parallel kernel on all the devices of a heterogeneous system. It performs a set of low level tasks regarding the management of devices, their disjoint memory spaces and scheduling the workload between the system devices while providing a layered API. EngineCL has been validated in two compute nodes (HPC and commodity system), that combine six devices with different architectures. Experimental results show that it has excellent usability compared with OpenCL; a maximum 2.8% of overhead compared to the native version under loads of less than a second of execution and a tendency towards zero for longer execution times; and it can reach an average efficiency of 0.89 when balancing the load.

Keywords

Cite

@article{arxiv.1805.02755,
  title  = {EngineCL: Usability and Performance in Heterogeneous Computing},
  author = {Raúl Nozal and Jose Luis Bosque and Ramón Beivide},
  journal= {arXiv preprint arXiv:1805.02755},
  year   = {2020}
}

Comments

18 pages, 13 figures, 3 tables, 2 listings Published in Future Generation Computer Systems: Received 31 May 2019, Revised 9 November 2019, Accepted 5 February 2020, Available online 8 February 2020