Abstract
Application programming for modern heterogeneous systems which comprise multi-core CPUs and multiple GPUs is complex and error-prone. Approaches like OpenCL and CUDA are relatively low-level as they require explicit handling of parallelism and memory, and they do not offer support for multiple GPUs within a stand-alone computer, nor for distributed systems that integrate several computers. In particular, distributed systems require application developers to use a mix of programming models, e.g., MPI together with OpenCL or CUDA.
We propose a uniform, high-level approach for programming both stand-alone and distributed systems with many cores and multiple GPUs. The approach consists of two parts: 1) the dOpenCL runtime system for transparent execution of OpenCL programs on several stand-alone computers connected by a network, and 2) the SkelCL library for high-level application programming on heterogeneous stand-alone systems with multi-core CPUs and multiple GPUs. While dOpenCL provides transparent accessibility of arbitrary computing devices (multi-core CPUs and GPUs) across distributed systems, SkelCL offers a set of pre-implemented patterns (skeletons) of parallel computation and communication which greatly simplify programming these devices. Both parts are built on top of OpenCL which ensures their high portability across different kinds of processors and GPUs.
We describe dOpenCL and SkelCL, demonstrate how our approach simplifies programming for distributed systems with many cores and multiple GPUs and report experimental results on a real-world application from the field of medical imaging.
We propose a uniform, high-level approach for programming both stand-alone and distributed systems with many cores and multiple GPUs. The approach consists of two parts: 1) the dOpenCL runtime system for transparent execution of OpenCL programs on several stand-alone computers connected by a network, and 2) the SkelCL library for high-level application programming on heterogeneous stand-alone systems with multi-core CPUs and multiple GPUs. While dOpenCL provides transparent accessibility of arbitrary computing devices (multi-core CPUs and GPUs) across distributed systems, SkelCL offers a set of pre-implemented patterns (skeletons) of parallel computation and communication which greatly simplify programming these devices. Both parts are built on top of OpenCL which ensures their high portability across different kinds of processors and GPUs.
We describe dOpenCL and SkelCL, demonstrate how our approach simplifies programming for distributed systems with many cores and multiple GPUs and report experimental results on a real-world application from the field of medical imaging.
Original language | English |
---|---|
Title of host publication | Transition of HPC Towards Exascale Computing |
Publisher | IOS Press |
Pages | 159 - 176 |
Number of pages | 18 |
ISBN (Electronic) | 978-1-61499-324-7 |
ISBN (Print) | 978-1-61499-323-0 |
DOIs | |
Publication status | Published - 30 Jun 2012 |
Event | International Advanced Research Workshop on High Performance Computing, Grids and Clouds - Cetraro, Italy Duration: 25 Jun 2012 → 29 Jun 2012 http://www.hpcc.unical.it/hpc2012/ |
Publication series
Name | Advances in Parallel Computing |
---|---|
Publisher | IOS Press |
Volume | 24 |
ISSN (Print) | 0927-5452 |
ISSN (Electronic) | 1879-808X |
Workshop
Workshop | International Advanced Research Workshop on High Performance Computing, Grids and Clouds |
---|---|
Abbreviated title | HPC 2012 |
Country/Territory | Italy |
City | Cetraro |
Period | 25/06/12 → 29/06/12 |
Internet address |