OpenCL in Scientific High Performance Computing: The Good, the Bad, and the Ugly

  • For writing a new scientific application, portability across existing and future hardware should be the major design goal, as there is a multitude of different compute devices, and programme codes typically outlive systems by far. Unlike other programming models that address parallelism or heterogeneity, OpenCL does provide practical portability across a wide range of HPC-relevant architectures. Other than that, it has a range of further advantages like being a library-only implementation, and using runtime kernel-compilation. We present experiences with utilising OpenCL alongside C++, MPI, and CMake in two real-world scientific codes. Our targets are a Cray XC40 supercomputer with multi- and many-core (Xeon Phi) CPUs, as well as multiple smaller systems with Nvidia and AMD GPUs. We shed light on practical issues arising in such a scenario, like the interaction between OpenCL and MPI, discuss solutions, and point out current limitations of OpenCL in the domain of scientific HPC from an application developer's and user's point of view.

Export metadata

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author:Matthias Noack
Document Type:In Proceedings
Parent Title (English):Proceedings of the 5th International Workshop on OpenCL
First Page:12:1
Last Page:12:3
Series:IWOCL 2017
Year of first publication:2017
DOI:https://doi.org/10.1145/3078155.3078170