OpenCL-HPX Integration
title={OpenCL-HPX integration},
author={Schupikov, Michael},
type={B.S.} thesis},
year={2021}
}
Distributed applications combine the computational capabilities of heterogeneous nodes. As such, they offer challenges regarding data transfer and synchronization. HPX is a library for concurrent, parallel applications. It strives not only to address challenges regarding distributed systems, but also to conform to current and upcoming C++ standards. One of the solutions found in heterogeneous systems is provided in form of the OpenCL standard. It enables the cooperation between hardware resources through a unified interface. In this work, we combine HPX and OpenCL in form of an executor. The OpenCL executor enables HPX users to benefit from more resources on heterogeneous nodes. We describe the executor’s design and its implementation. Furthermore, we present the testing methods to ensure the correctness of the executor. Finally, we provide benchmarks on NVIDIA and AMD GPUs.