Performance Gaps between OpenMP and OpenCL for Multi-core
CPUs
J. Shen, J. Fang, H. Sips, and A. Varbanescu. Parallel Processing Workshops (ICPPW), 2012 41st International
Conference on, page 116--125. ieeexplore.ieee.org, (2012)
Abstract
OpenCL and OpenMP are the most commonly used programming models
for multi-core processors. They are also fundamentally different
in their approach to parallelization. In this paper, we focus on
comparing the performance of OpenCL and OpenMP. We select three
applications from the Rodinia benchmark suite (which provides
equivalent OpenMP and OpenCL implementations), and carry out
experiments with different datasets on three multi-core
platforms. We see that the incorrect usage of the multi-core
CPUs, the inherent OpenCL fine-grained parallelism, and the
immature OpenCL compilers are the main reasons that lead to the
OpenCL poorer performance. After tuning the OpenCL versions to
be more CPU-friendly, we show that OpenCL either outperforms or
achieves similar performance in more than 80\% of the cases.
Therefore, we believe that OpenCL is a good alternative for
multi-core CPU programming.
%0 Conference Paper
%1 Shen2012-oe
%A Shen, Jie
%A Fang, Jianbin
%A Sips, H
%A Varbanescu, A L
%B Parallel Processing Workshops (ICPPW), 2012 41st International
Conference on
%D 2012
%I ieeexplore.ieee.org
%K Arrays CPU Expose Hardware Kernel Multi-core OpenCL OpenCL_compilers OpenCL_fine-grained_parallelism OpenMP Parallel_processing Performance_Comparison Performance_evaluation Programming Rodinia_benchmark_suite Thread_scheduling Vectorization multicore_CPU multicore_processors multiprocessing_programs multiprocessing_systems performance_gaps program_compilers programming_models
%P 116--125
%T Performance Gaps between OpenMP and OpenCL for Multi-core
CPUs
%X OpenCL and OpenMP are the most commonly used programming models
for multi-core processors. They are also fundamentally different
in their approach to parallelization. In this paper, we focus on
comparing the performance of OpenCL and OpenMP. We select three
applications from the Rodinia benchmark suite (which provides
equivalent OpenMP and OpenCL implementations), and carry out
experiments with different datasets on three multi-core
platforms. We see that the incorrect usage of the multi-core
CPUs, the inherent OpenCL fine-grained parallelism, and the
immature OpenCL compilers are the main reasons that lead to the
OpenCL poorer performance. After tuning the OpenCL versions to
be more CPU-friendly, we show that OpenCL either outperforms or
achieves similar performance in more than 80\% of the cases.
Therefore, we believe that OpenCL is a good alternative for
multi-core CPU programming.
@inproceedings{Shen2012-oe,
abstract = {OpenCL and OpenMP are the most commonly used programming models
for multi-core processors. They are also fundamentally different
in their approach to parallelization. In this paper, we focus on
comparing the performance of OpenCL and OpenMP. We select three
applications from the Rodinia benchmark suite (which provides
equivalent OpenMP and OpenCL implementations), and carry out
experiments with different datasets on three multi-core
platforms. We see that the incorrect usage of the multi-core
CPUs, the inherent OpenCL fine-grained parallelism, and the
immature OpenCL compilers are the main reasons that lead to the
OpenCL poorer performance. After tuning the OpenCL versions to
be more CPU-friendly, we show that OpenCL either outperforms or
achieves similar performance in more than 80\% of the cases.
Therefore, we believe that OpenCL is a good alternative for
multi-core CPU programming.},
added-at = {2015-04-10T18:02:47.000+0200},
author = {Shen, Jie and Fang, Jianbin and Sips, H and Varbanescu, A L},
biburl = {https://www.bibsonomy.org/bibtex/2a631c2503b1619e86eb0c953d685aaa6/christophv},
booktitle = {Parallel Processing Workshops ({ICPPW)}, 2012 41st International
Conference on},
interhash = {c46c412c4aa9d37f4a497fcf61507240},
intrahash = {a631c2503b1619e86eb0c953d685aaa6},
keywords = {Arrays CPU Expose Hardware Kernel Multi-core OpenCL OpenCL_compilers OpenCL_fine-grained_parallelism OpenMP Parallel_processing Performance_Comparison Performance_evaluation Programming Rodinia_benchmark_suite Thread_scheduling Vectorization multicore_CPU multicore_processors multiprocessing_programs multiprocessing_systems performance_gaps program_compilers programming_models},
pages = {116--125},
publisher = {ieeexplore.ieee.org},
timestamp = {2016-01-04T14:22:08.000+0100},
title = {Performance Gaps between {OpenMP} and {OpenCL} for Multi-core
{CPUs}},
year = 2012
}