@inproceedings{25684f28605045f7adc5b223930dd1f4,
title = "SkelCL: Enhancing OpenCL for High-Level Programming of Multi-GPU Systems",
abstract = "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.",
author = "Michel Steuwer and Sergei Gorlatch",
year = "2013",
doi = "10.1007/978-3-642-39958-9_24",
language = "English",
isbn = "978-3-642-39957-2",
series = "Lecture Notes in Computer Science",
publisher = "Springer",
pages = "258--272",
editor = "Victor Malyshkin",
booktitle = "Parallel Computing Technologies",
address = "United Kingdom",
}