Computational & Technology Resources
an online resource for computational,
engineering & technology publications
Computational Science, Engineering & Technology Series
PATTERNS FOR PARALLEL PROGRAMMING ON GPUS
Edited by: F. Magoulès
OpenCL: A Suitable Solution to Simplify and Unify High Performance Computing Developments
J. Passerat-Palmbach and D.R.C. Hill
ISIMA, Aubière, France
J. Passerat-Palmbach, D.R.C. Hill, "OpenCL: A Suitable Solution to Simplify and Unify High Performance Computing Developments", in F. Magoulès, (Editor), "Patterns for Parallel Programming on GPUs", Saxe-Coburg Publications, Stirlingshire, UK, Chapter 8, pp 187-207, 2014. doi:10.4203/csets.34.8
Keywords: OpenCL, abstraction layers, survey, source-to-source, transformation, manycore.
Manycore architectures are now available in a wide range of HPC systems. Going from CPUs to GPUs and FPGAs, modern hardware accelerators can be exploited using heterogeneous software technologies. In this chapter, we study the inputs that OpenCL offers to high performance computing applications, as a solution to unify developments. In order to overcome the lack of native OpenCL support for some architectures, we survey the third-party research works that propose a source-to-source approach to transform OpenCL into other parallel programming languages. We use FPGAs as a case study, because of their dramatic OpenCL support compared to GPUs for instance. These transformation approaches could also lead to potential works in the model driven engineering (MDE) field that we conceptualize in this work. Moreover, OpenCL's standard API is quite rough, thus we also introduce several APIs from the simple high-level binder to the source code generator that intend to ease and boost the development process of any OpenCL application.
purchase the full-text of this chapter (price £20)