17594

OpenCL Actors – Adding Data Parallelism to Actor-based Programming with CAF

Raphael Hiesgen, Dominik Charousset, Thomas C. Schmidt
Hamburg University of Applied Sciences, Internet Technologies Group, Department Informatik, HAW Hamburg, Berliner Tor 7, D-20099 Hamburg, Germany
arXiv:1709.07781 [cs.DC], (22 Sep 2017)

@article{hiesgen2017opencl,

   title={OpenCL Actors – Adding Data Parallelism to Actor-based Programming with CAF},

   author={Hiesgen, Raphael and Charousset, Dominik and Schmidt, Thomas C.},

   year={2017},

   month={sep},

   archivePrefix={"arXiv"},

   primaryClass={cs.DC}

}

The actor model of computation has been designed for a seamless support of concurrency and distribution. However, it remains unspecific about data parallel program flows, while available processing power of modern many core hardware such as graphics processing units (GPUs) or coprocessors increases the relevance of data parallelism for general-purpose computation. In this work, we introduce OpenCL-enabled actors to the C++ Actor Framework (CAF). This offers a high level interface for accessing any OpenCL device without leaving the actor paradigm. The new type of actor is integrated into the runtime environment of CAF and gives rise to transparent message passing in distributed systems on heterogeneous hardware. Following the actor logic in CAF, OpenCL kernels can be composed while encapsulated in C++ actors, hence operate in a multi-stage fashion on data resident at the GPU. Developers are thus enabled to build complex data parallel programs from primitives without leaving the actor paradigm, nor sacrificing performance. Our evaluations on commodity GPUs, an Nvidia TESLA, and an Intel PHI reveal the expected linear scaling behavior when offloading larger workloads. For sub-second duties, the efficiency of offloading was found to largely differ between devices. Moreover, our findings indicate a negligible overhead over programming with the native OpenCL API.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2024 hgpu.org

All rights belong to the respective authors

Contact us: