Application development for modern high-performance systems with Graphics Processing Units (GPUs) currently relies on low-level programming approaches like CUDA and OpenCL, which leads to complex, lengthy and error-prone programs. In this paper, we present SkelCL-a high-level programming approach for systems with multiple GPUs and its implementation as a library on top of OpenCL. SkelCL provides three main enhancements to the OpenCL standard: 1) computations are conveniently expressed using parallel algorithmic patterns (skeletons); 2) memory management is simplified using parallel container data types (vectors and matrices); 3) an automatic data (re)distribution mechanism allows for implicit data movements between GPUs and ensures scalability when using multiple GPUs. We demonstrate how SkelCL is used to implement parallel applications on one-and two-dimensional data. We report experimental results to evaluate our approach in terms of programming effort and performance. © 2013 Springer-Verlag Berlin Heidelberg.
CITATION STYLE
Steuwer, M., & Gorlatch, S. (2013). SkelCL: Enhancing openCL for high-level programming of multi-GPU systems. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 7979 LNCS, pp. 258–272). Springer Verlag. https://doi.org/10.1007/978-3-642-39958-9_24
Mendeley helps you to discover research relevant for your work.