SkelCL: a high-level extension of OpenCL for multi-GPU systems

Michel Steuwer, Sergei Gorlatch

Research output: Contribution to journalArticlepeer-review

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. We present SkelCL—a high-level programming approach for systems with multiple GPUs and its implementation as a library on top of OpenCL. SkelCL makes three main enhancements to the OpenCL standard: (1) memory management is simplified using parallel container data types (vectors and matrices); (2) an automatic data (re)distribution mechanism allows for implicit data movements between GPUs and ensures scalability when using multiple GPUs; (3) computations are conveniently expressed using parallel algorithmic patterns (skeletons). We demonstrate how SkelCL is used to implement parallel applications, and we report experimental evaluation of our approach in terms of programming effort and performance.
Original languageEnglish
Pages (from-to)25-33
Number of pages9
JournalJournal of Supercomputing
Volume69
Issue number1
DOIs
Publication statusPublished - Jul 2014

Fingerprint

Dive into the research topics of 'SkelCL: a high-level extension of OpenCL for multi-GPU systems'. Together they form a unique fingerprint.

Cite this