lbmpy: A Flexible Symbolic Toolkit for Lattice Boltzmann Methods with CodeGeneration for CPUs and GPUs

Bauer M, Rüde U (2018)


Publication Language: English

Publication Type: Conference contribution, Abstract of lecture

Publication year: 2018

Event location: University of Delaware, Newark, Delaware, USA US

Abstract

There are many different lattice Boltzmann methods (LBM), starting from the well­known single­relaxation­time scheme with its multi­relaxation­time (MRT) generalization, up to recently proposed entropic orcumulant methods.We present a symbolic toolkit that enables the user to formulate, analyse and run all these different LBschemes using a Python­based interface. For example, one can define a custom MRT LB method bychoosing a set of moments with corresponding equilibrium descriptions, analyse it by running anautomated Chapman­Enskog expansion, improve the scheme, and finally execute it efficiently on theGPU, all inside a user friendly, interactive Python environment. Our toolkit allows the definition andmodification of a LB method on different levels of complexity. For example, relaxation times can bedefined as a function of local flow properties. With this mechanism, extensions like non­Newtonian effectsor LES models can be easily incorporated into LB schemes by choosing relaxation times as functions oflocal shear stresses.Having the LB method available in symbolic representation allows us to use a set of transformations thatsimplify and optimize the formulation of the method. Depending on the scenario at hand and the targetarchitecture, different optimization steps are automatically applied. Transformations propagate constants,eliminate common subexpressions, improve cache characteristics by utilizing non­temporal stores, orautomatically determine optimal CUDA block sizes for GPU kernels. This optimized formulation is thencompiled to a highly efficient compute kernel, that can be called directly from the Python environment. Inaddition, the generated LB kernels can also be integrated into the waLBerla C++ framework [1] to runmassively parallel MPI simulations on block­structured grids.

Authors with CRIS profile

Related research project(s)

How to cite

APA:

Bauer, M., & Rüde, U. (2018). lbmpy: A Flexible Symbolic Toolkit for Lattice Boltzmann Methods with CodeGeneration for CPUs and GPUs. Paper presentation, University of Delaware, Newark, Delaware, USA, US.

MLA:

Bauer, Martin, and Ulrich Rüde. "lbmpy: A Flexible Symbolic Toolkit for Lattice Boltzmann Methods with CodeGeneration for CPUs and GPUs." University of Delaware, Newark, Delaware, USA 2018.

BibTeX: Download