Accelerating a Climate Physics Model with OpenCL

Open Computing Language (OpenCL) is fast becoming the standard for heterogeneous parallel computing. It is designed to run on CPUs, GPUs, and other accelerator architectures. By implementing a real world application, a solar radiation model component widely used in climate and weather models, we show that OpenCL multi-threaded programming and execution model can dramatically increase performance even on CPU architectures. Our preliminary investigation indicates that low-level vector instructions and code representations in OpenCL contribute to dramatic performance improvement over the serial version when compared with the execution of the serial code compiled across various compilers on multiple platforms with auto vectorization flags. However, the portability of OpenCL implementations needs to improve, even for CPU architectures.

[1]  David A. Padua,et al.  An Evaluation of Vectorizing Compilers , 2011, 2011 International Conference on Parallel Architectures and Compilation Techniques.

[2]  D. Naishlos,et al.  Autovectorization in GCC , 2004 .

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

[4]  J. Kulpa,et al.  Time-frequency analysis using NVIDIA compute unified device architecture (CUDA) , 2009, Symposium on Photonics Applications in Astronomy, Communications, Industry, and High-Energy Physics Experiments (WILGA).

[5]  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..

[6]  Max J. Suarez,et al.  A solar radiation parameterization (CLIR-AD-SW) for atmospheric studies , 1999 .

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

[8]  Richard M. Stallman,et al.  GNU Compiler Collection Internals , 2011 .

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

[10]  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).