AFiD-GPU: A versatile Navier-Stokes solver for wall-bounded turbulent flows on GPU clusters

作者:Zhu Xiaojue; Phillips Everett; Spandan Vamsi; Donners John; Ruetsch Gregory; Romero Joshua; Ostilla Monico Rodolfo; Yang Yantao; Lohse Detlef; Verzicco Roberto; Fatica Massimiliano; Stevens Richard J A M*
来源:Computer Physics Communications, 2018, 229: 199-210.
DOI:10.1016/j.cpc.2018.03.026

摘要

The AFiD code, an open source solver for the incompressible Navier-Stokes equations (http://www.afid. eu ), has been ported to GPU clusters to tackle large-scale wall-bounded turbulent flow simulations. The GPU porting has been carried out in CUDA Fortran with the extensive use of kernel loop directives (CUF kernels) in order to have a source code as close as possible to the original CPU version; just a few routines have been manually rewritten. A new transpose scheme has been devised to improve the scaling of the Poisson solver, which is the main bottleneck of incompressible solvers. For large meshes the GPU version of the code shows good strong scaling characteristics, and the wall-clock time per step for the GPU version is an order of magnitude smaller than for the CPU version of the code. Due to the increased performance and efficient use of memory, the GPU version of AFiD can perform simulations in parameter ranges that are unprecedented in thermally-driven wall-bounded turbulence. To verify the accuracy of the code, turbulent Rayleigh-Benard convection and plane Couette flow are simulated and the results are in excellent agreement with the experimental and computational data that have been published in literature.
Program summary
Program Title: AFiD-GPU
Program Files doi: http://dx.doi.org/10.17632/rwjdg7ry66.1
Licensing provisions: MIT
Programming language: Fortran 90, CUDA Fortran, MPI
External routines: PGI, CUDA Toolkit, FFTW3, HDF5
Nature of problem: Solving the three-dimensional Navier-Stokes equations coupled with a scalar field in a cubic box bounded between two walls and with periodic boundary conditions in the horizontal directions.
Solution method: Second order finite difference method for spatial discretization, third order Runge- Kutta scheme in combination with Crank-Nicolson for the implicit terms for time advancement, two dimensional pencil distributed MPI parallelization, GPU accelerated routines.
Additional comments including restrictions and unusual features: The code is available and supported on https://github.com/PhysicsofFluids/AFiD_GPU_opensource.

  • 出版日期2018-8