High-Level Programming for Medical Imaging on Multi-GPU Systems Using the SkelCL Library

Steuwer, M. and Gorlatch, S. (2013) High-Level Programming for Medical Imaging on Multi-GPU Systems Using the SkelCL Library. In: 2013 International Conference on Computational Science (ICCS 2013), Barcelona, Spain, 05-07 Jun 2013, pp. 749-758. (doi:10.1016/j.procs.2013.05.239)

148981.pdf - Published Version
Available under License Creative Commons Attribution Non-commercial No Derivatives.



Application development for modern high-performance systems with Graphics Processing Units (GPUs) 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 model 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 patterns (skeletons); 2) memory management is simplified using parallel container data types; 3) an automatic data (re)distribution mechanism allows for scalability when using multi-GPU systems. We use a real-world example from the field of medical imaging to motivate the design of our programming model and we show how application development using SkelCL is simplified without sacrificing performance: we were able to reduce the code size in our imaging example application by 50% while introducing only a moderate runtime overhead of less than 5%.

Item Type:Conference Proceedings
Glasgow Author(s) Enlighten ID:Steuwer, Dr Michel
Authors: Steuwer, M., and Gorlatch, S.
Subjects:Q Science > QA Mathematics > QA75 Electronic computers. Computer science
College/School:College of Science and Engineering > School of Computing Science
Published Online:01 June 2013
Copyright Holders:Copyright © 2013 The Authors
First Published:First published in Procedia Computer Science 18: 749-758
Publisher Policy:Reproduced under a Creative Commons license

University Staff: Request a correction | Enlighten Editors: Update this record