EngineCL

A new OpenCL-based runtime system that notably simplifies the execution of a single massive data-parallel kernel on a heterogeneous system.

Software Author
Raúl Nozal
Research Lines:
Heterogeneous Systems
Software Cost:
MIT License
Source:
Github

Overview

EngineCL is an 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.

Citation

Please, cite the following paper if you use this work.

@ARTICLE{EngineCL:2020,
       author = {{Nozal}, Ra{\'u}l and {Bosque}, Jose Luis and {Beivide}, Ram{\'o}n},
        title = {{EngineCL: Usability and Performance in Heterogeneous Computing}},
      journal = {Future Generation Computer Systems},
     keywords = {Heterogeneous computing, Usability, Performance portability, OpenCL, Parallel programming, Scheduling, Load balancing, Productivity, API, Computer Science - Distributed, Parallel, and Cluster Computing, C.1.2, C.1.4, C.1.3, D.1.3, D.2.0, D.2.3, D.2.11, D.2.13, D.4.7, D.4.9, E.1},
         year = {2020},
        month = {Feb},
          url = {https://doi.org/10.1016/j.future.2020.02.016},
          doi = {10.1016/j.future.2020.02.016}}