Sailfish: a flexible multi-GPU implementation of the lattice Boltzmann method

Michal Januszewski, Marcin Kostur
Institute of Physics, University of Silesia, 40-007 Katowice, Poland
arXiv:1311.2404 [physics.comp-ph], (11 Nov 2013)


   author={Januszewski}, M. and {Kostur}, M.},

   title={"{Sailfish: a flexible multi-GPU implementation of the lattice Boltzmann method}"},

   journal={ArXiv e-prints},




   keywords={Physics – Computational Physics, Physics – Fluid Dynamics},




   adsnote={Provided by the SAO/NASA Astrophysics Data System}


Download Download (PDF)   View View   Source Source   Source codes Source codes




We present Sailfish, an open source fluid simulation package implementing the lattice Boltzmann method (LBM) on modern Graphics Processing Units (GPUs) using CUDA/OpenCL. We take a novel approach to GPU code implementation and use run-time code generation techniques and a high level programming language (Python) to achieve state of the art performance, while allowing easy experimentation with different LBM models and tuning for various types of hardware. We discuss the general design principles of the code, scaling to multiple GPUs in a distributed environment, as well as the GPU implementation and optimization of many different LBM models, both single component (BGK, MRT, ELBM) and multicomponent (Shan-Chen, free energy). The paper also presents results of performance benchmarks spanning the last three NVIDIA GPU generations (Tesla, Fermi, Kepler), which we hope will be useful for researchers working with this type of hardware and similar codes.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2020 hgpu.org

All rights belong to the respective authors

Contact us: