Cluster-SkePU: A Multi-Backend Skeleton Programming Library for GPU Clusters
Department of Computer and Information Sciences (IDA), Linkoping University, Sweden
The 2013 International Conference on Parallel and Distributed, Processing Techniques and Applications (PDPTA’13), 2013
@article{majeed2013cluster,
title={Cluster-SkePU: A Multi-Backend Skeleton Programming Library for GPU Clusters},
author={Majeed, Mudassar and Dastgeer, Usman and Kessler, Christoph},
year={2013}
}
SkePU is a C++ template library with a simple and unified interface for expressing data parallel computations in terms of generic components, called skeletons, on multi-GPU systems using CUDA and OpenCL. The smart containers in SkePU, such as Matrix and Vector, perform data management with a lazy memory copying mechanism that reduces redundant data communication. SkePU provides programmability, portability and even performance portability, but up to now application written using SkePU could only run on a single multi-GPU node. We present the extension of SkePU for GPU clusters without the need to modify the SkePU application source code. With our prototype implementation, we performed two experiments. The first experiment demonstrates the scalability with regular algorithms for N-body simulation and electric field calculation over multiple GPU nodes. The results for the second experiment show the benefit of lazy memory copying in terms of speedup gained for one level of Strassen’s algorithm and another synthetic matrix sum application.
December 4, 2013 by hgpu