OpenLB - An Open Source High Performance Lattice Boltzmann Code for Heterogeneous CPU-GPU Clusters

Lattice Boltzmann Methods (LBM) are an established mesoscopic approach for simulating a wide variety of transport phenomena [2]. While they are uniquely suited to HPC applications, obtaining maximum performance across different targets, collision models and boundary conditions is an active topic of research.
The principal goal of the project is to enable the utilization of arbitrary heterogeneous target hardware in the existing OpenLB software framework [1]. Specifically, we want to support execution on GPGPUs and SIMD CPUs. Secondary goals include the further development of OpenLB's architecture in order to incorporate support for adaptive time and spatial refinement as a model-based performance optimization. Improvements are also planned to continue the existing collaboration of LBRG and Prof. Dr. Frank with the goal of using OpenLB as a general toolkit for solving PDEs. Furthermore, all of these goals are planned to be approached in a sustainable fashion, ensuring the continued reproducibility and reliability of OpenLB as one of the major open source LBM codes.
As a first significant step towards this, a new algorithm for implementing the LBM streaming step with very good bandwidth-relative performance on both CPU and GPU targets was developed [3]. This Periodic Shift (PS) pattern was produced by considering implicit propagation as a transformation of the memory bijection. Virtual memory manipulation is used on both CPU and GPU targets to efficiently implement these transformations.

 

Figure: Q-Criterion of a turbulent nozzle flow resolved by 2.5 billion cells distributed to 120 GPUs on HoreKa

 

[1] M. J. Krause, A. Kummerländer, S. J. Avis, H. Kusumaatmaja, D. Dapelo, F. Klemens, M. Gaedtke, N. Hafen, A. Mink, R. Trunk, J. E. Marquardt, M.-L. Maier, M. Haussmann, and S. Simonis. "OpenLB-Open source lattice Boltzmann code." In Computers & Mathematics with Applications 81 (Jan. 2021), pp. 258-288. doi: 10.1016/j.camwa.2020.04.033.
[2] M. J. Krause, A. Kummerländer, and S. Simonis. Fluid flow simulation with lattice Boltzmann methods on high performance computers. NASA AMS Seminar Series. 2020.
[3] A. Kummerländer, M. Dorn, M. Frank, and M. J. Krause. "Implicit propagation of directly addressed grids in lattice boltzmann methods." In: 32nd Parallel Computational Fluid Dynamics Conference (ParCFD21), Submitted to Computers & Fluids. 2021. doi: 10.13140/RG.2.2.35085.87523.