Cross-Platform OpenCL Code and Performance Portability for CPU and GPU Architectures Investigated with a Climate and Weather Physics Model

Current multiand many-core computing typically involves multi-core Central Processing Units (CPU) and many-core Graphical Processing Units (GPU) whose architectures are distinctly different. To keep longevity of application codes, it is highly desirable to have a programming paradigm to support these current and future architectures. Open Computing Language (OpenCL) is created to address this problem. While the current implementations of OpenCL compiler provide the capability to compile and run on the architectures above, most of the current researches investigate the performance of GPU’s as a compute device. In this paper we will investigate the portability of OpenCL across CPU and GPU architectures in terms of code and performance via a representative climate and weather physics model, NASA’s GEOS-5 solar radiation model, SOLAR. An OpenCL implementation portable between CPU’s and GPU’s has been obtained with significant performance improvement in some CPU’s and GPU’s. We found that OpenCL’s vector-oriented programming paradigm assists compilers with implicit vectorization and consequently significant performance gains were achieved.

[1]  Pradeep Dubey,et al.  Debunking the 100X GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU , 2010, ISCA.

[2]  Tom Henderson,et al.  Running the NIM Next-Generation Weather Model on GPUs , 2010, 2010 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing.

[3]  Manish Vachharajani,et al.  GPU acceleration of numerical weather prediction , 2008, 2008 IEEE International Symposium on Parallel and Distributed Processing.

[4]  Wolfgang Rosenstiel,et al.  Exploiting Heterogeneous Computing Platforms By Cataloging Best Solutions For Resource Intensive Seismic Applications , 2011 .

[5]  C. Kelly,et al.  GPU computing for atmospheric modeling: Experience with a small kernel and implications for a full model , 2010 .

[6]  Dibyajyoti Ghosh,et al.  Accelerating a Climate Physics Model with OpenCL , 2011, 2011 Symposium on Application Accelerators in High-Performance Computing.

[7]  Samuel Williams,et al.  The impact of IBM Cell technology on the programming paradigm in the context of computer systems for climate and weather models , 2009, Concurr. Comput. Pract. Exp..

[8]  J. Xu OpenCL – The Open Standard for Parallel Programming of Heterogeneous Systems , 2009 .

[9]  Yuxiang Xing,et al.  A preliminary study of OpenCL for accelerating CT reconstruction and image recognition , 2009, 2009 IEEE Nuclear Science Symposium Conference Record (NSS/MIC).

[10]  Manish Vachharajani,et al.  GPU acceleration of numerical weather prediction , 2008, IPDPS.

[11]  Rose Ferrara-Love,et al.  the product page , 1997 .

[12]  Jens Breitbart,et al.  OpenCL - An effective programming model for data parallel computations at the Cell Broadband Engine , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum (IPDPSW).