OpenCL vs. OpenMP: A Programmability Debate
Department of Computer Science, Delft University of Technology, The Netherlands
16th Workshop on Compilers for Parallel Computing (CPC’12), 2012
@inproceedings{shen2012opencl,
author={Jie Shen and Jianbin Fang and Ana Lucia Varbanescu and Henk Sips},
title={OpenCL vs. OpenMP: A Programmability Debate},
booktitle={Proceedings of the 16th Workshop on Compilers for Parallel Computing (CPC’12)},
publisher={This paper has been presented in CPC’12 (http://aacse.dei.unipd.it/cpc2012/). No proceedings are published for the CPC Workshops},
year={2012},
month={January},
location={Padova, Italy},
url={http://www.pds.ewi.tudelft.nl/fileadmin/pds/homepages/shenjie/papers/CPC2012.pdf},
topic={Parallel Programming},
group={PDS}
}
OpenCL and OpenMP are the most commonly used programming models for homogeneous multi-core processors. They are also fundamentally different in their approach to parallelization, in terms of granularity level, explicit/implicit constructs, and usability. In this paper, we compare these two models in terms of programmability, with a special focus on performance and productivity. For our comparison, we use eleven applications from the Rodinia 2.0 benchmark, and we show the differences between their OpenCL and OpenMP implementations. Our experimental results, collected on three different hardware platforms, show that the performance ratio between the two approaches can vary significantly depending on the application, platform, and dataset characteristics. Therefore, we argue that the choice between OpenCL and OpenMP should be driven by application characterization and the overall goals of the programmers.
April 18, 2012 by hgpu