Evaluation of a performance portable lattice Boltzmann code using OpenCL

Research output: Chapter in Book/Report/Conference proceedingConference Contribution (Conference Proceeding)

4 Citations (Scopus)


With the advent of many-core computer architectures such as GPGPUs from NVIDIA and AMD, and more recently Intel’s Xeon Phi, ensuring performance portability of HPC codes is potentially becoming more complex. In this work we have focused on one important application area — struc- tured grid codes — and investigated techniques exploiting OpenCL to enable performance portability across a diverse range of high-end many-core architectures. In particular we have chosen to investigate 3D lattice Boltzmann codes (D3Q19 BGK). We have developed an OpenCL versions of these codes in order to provide cross-platform functional portability, and compared the performance of this OpenCL version to optimized native versions on each target platform, including hybrid OpenMP/AVX versions on CPUs and Xeon Phi, and CUDA versions on NVIDIA GPUs. Results show that, contrary to conventional wisdom, using OpenCL it is possible to achieve a high degree of performance portabil- ity, at least for 3D lattice Boltzmann codes, using a set of straightforward techniques. The performance portable code in OpenCL is also highly competitive with the best per- formance using the native parallel programming models on each platform.
Original languageEnglish
Title of host publicationProceedings of the International Workshop on OpenCL 2013 & 2014
Place of PublicationNew York, NY
PublisherAssociation for Computing Machinery (ACM)
Number of pages12
ISBN (Electronic)978-1-4503-3007-7
Publication statusPublished - May 2014
EventInternational Workshop on OpenCL (IWOCL) - Bristol, United Kingdom
Duration: 12 May 201413 May 2014

Publication series



ConferenceInternational Workshop on OpenCL (IWOCL)
Country/TerritoryUnited Kingdom


  • Many-core, heterogeneous, GPU, Xeon Phi, structured grid, lattice Boltzmann, performance portability


Dive into the research topics of 'Evaluation of a performance portable lattice Boltzmann code using OpenCL'. Together they form a unique fingerprint.

Cite this