ROTORSIM – A multi-grid, multi-block CFD code

Principal Investigator: 

Christian Allen
C.B.Allen@bristol.ac.uk

Simon McIntosh-Smith (for Mont Blanc)
simonm@compsci.bristol.ac.uk

Other application users/developers: 

University of Bristol – Faculty of Engineering

Scientific area: 
Computational Fluid Dynamics
Abstract: 
The ROTORSIM CFD code is a multi-grid and multi-block CFD code written in C, MPI and OpenCL, the first GPU port that supports these features that we are aware of. We have measured the performance of ROTORSIM across a diverse range of hardware platforms, and observed a very good level of performance portability. ROTORSIM is a structured grid code, and as with other structured grid codes it is memory bandwidth limited, and so we have measured ROTORSIM’s performance portability by recording the fraction of peak memory bandwidth that the code sustains across the different target hardware platforms. A paper detailing these experimental results for ROTORSIM was published at ISC 2014. The absolute performance of the memory bandwidth-bound ROTORSIM code on a range of many-core devices as well as its performance relative to peak memory bandwidth and peak double precision floating point, has been carefully benchmarked. These results shown that ROTORSIM is also exhibiting a good degree of performance portability, sustaining a similar fraction of peak memory bandwidth across most devices, even when those devices have very low double precision floating point performance thus making it ideal as testbed of the upcoming architectures in Mont-Blanc 2 project.
Scalability: 
Good scaling up to thousands of GPU cores on SMP clusters or similar hybrid computing architectures.
Versions: 
MPI
OpenMP
CUDA
OpenCL
Other: 
C language
Tested on platforms: 

SMP cluster based on NVIDIA, AMD GPU, Intel Xeon and Xeon Phi and ARM processors

Images: