SkelCL: Enhancing OpenCL for High-Level Programming of Multi-GPU Systems

Michel Steuwer, Sergei Gorlatch

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract / Description of output

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.
Original languageEnglish
Title of host publicationParallel Computing Technologies
Subtitle of host publication12th International Conference, PaCT 2013, St. Petersburg, Russia, September 30 - October 4, 2013. Proceedings
EditorsVictor Malyshkin
Place of PublicationBerlin, Heidelberg
PublisherSpringer
Pages258-272
Number of pages15
ISBN (Electronic)978-3-642-39958-9
ISBN (Print)978-3-642-39957-2
DOIs
Publication statusPublished - 2013

Publication series

NameLecture Notes in Computer Science
PublisherSpringer Berlin Heidelberg
Volume7979
ISSN (Print)0302-9743

Fingerprint

Dive into the research topics of 'SkelCL: Enhancing OpenCL for High-Level Programming of Multi-GPU Systems'. Together they form a unique fingerprint.

Cite this