Enabling Efficient Use of Algorithmic Skeletons in Cloud Environments: Container-based Virtualization for Hybrid CPU-GPU Execution of Data-parallel Skeletons
Wrede Fabian, von Hof Vincent
The demand for computational power is constantly increasing, which requires financial investments and know-how for companies. The answer to this challenge is two-fold. First, companies can rely on cloud providers to provide infrastructure. Second, programming models emerged to simplify parallel programming, one of them being algorithmic skeletons. In this paper, we propose an efficient way to deploy parallel applications using the C++ algorithmic skeleton library Muesli in a cloud environment by using Docker tools for abstraction and automatic node scaling. Moreover, we introduce an approach for dynamic hybrid CPU-GPU execution of data parallel algorithmic skeletons to efficiently utilize resources in heterogeneous architectures. We have been able to automate the setup and scaling of nodes, thus, decreasing the know-how barrier. Additionally, notable speedups were achieved by hybrid CPU-GPU execution of algorithmic skeletons.
parallel programming; skeletons; cloud; docker; CPU-GPU