Sailfish: a flexible multi-GPU implementation of the lattice Boltzmann method. 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.

References in zbMATH (referenced in 10 articles , 1 standard article )

Showing results 1 to 10 of 10.
Sorted by year (citations)

  1. Jonnalagadda, Anirudh; Sharma, Atul; Agrawal, Amit: Single relaxation time entropic lattice Boltzmann methods: a developer’s perspective for stable and accurate simulations (2021)
  2. Spinelli, Gregorio Gerardo; Celik, Bayram: Leveling out interface temperature for conjugate heat transfer problems (2020)
  3. Verdier, Werner; Kestener, Pierre; Cartalade, Alain: Performance portability of lattice Boltzmann methods for two-phase flows with phase change (2020)
  4. Piccinini, Enrico; Benedetti, Claudia; Siloi, Ilaria; Paris, Matteo G. A.; Bordone, Paolo: GPU-accelerated algorithms for many-particle continuous-time quantum walks (2017)
  5. Coelho, Rodrigo C. V.; Neumann, Rodrigo F.: Fluid dynamics in porous media with Sailfish (2016)
  6. Misztal, Marek Krzysztof; Hernandez-Garcia, Anier; Matin, Rastin; Sørensen, Henning Osholm; Mathiesen, Joachim: Detailed analysis of the lattice Boltzmann method on unstructured grids (2015)
  7. Safi, Mohammad Amin; Turek, Stefan: Efficient computations for high density ratio rising bubble flows using a diffused interface, coupled lattice Boltzmann-level set scheme (2015)
  8. Zabelok, Sergey; Arslanbekov, Robert; Kolobov, Vladimir: Adaptive kinetic-fluid solvers for heterogeneous computing architectures (2015)
  9. Januszewski, M.; Kostur, M.: Sailfish: a flexible multi-GPU implementation of the lattice Boltzmann method (2014)
  10. Priimak, Dmitri: Finite difference numerical method for the superlattice Boltzmann transport equation and case comparison of CPU(C) and GPU(CUDA) implementations (2014)