Data-Oriented Language Implementation of Lattice-Boltzmann Method for Dense and Sparse Geometries

08/30/2021
by   Tadeusz Tomczak, et al.
0

The performance of lattice-Boltzmann solver implementations usually depends mainly on memory access patterns. Achieving high performance requires then complex code which handles careful data placement and ordering of memory transactions. In this work, we analyse the performance of an implementation based on a new approach called the data-oriented language, which allows the combining of complex memory access patterns with simple source code. As a use case, we present and provide the source code of a solver for D2Q9 lattice and show its performance on GTX Titan Xp GPU for dense and sparse geometries up to 4096 2 nodes. The obtained results are promising, around 1000 lines of code allowed us to achieve performance in the range of 0.6 to 0.7 of maximum theoretical memory bandwidth (over 2.5 and 5.0 GLUPS for double and single precision, respectively) for meshes of size above 1024 2 nodes, which is close to the current state-of-the-art. However, we also observed relatively high and sometimes difficult to predict overheads, especially for sparse data structures. The additional issue was also a rather long compilation, which extended the time of short simulations, and a lack of access to low-level optimisation mechanisms.

READ FULL TEXT

page 7

page 9

page 14

research
11/08/2016

A new GPU implementation for lattice-Boltzmann simulations on sparse geometries

We describe a high-performance implementation of the lattice Boltzmann m...
research
04/13/2023

Thread-safe lattice Boltzmann for high-performance computing on GPUs

We present thread-safe, highly-optimized lattice Boltzmann implementatio...
research
08/10/2022

Designing a 3D Parallel Memory-Aware Lattice Boltzmann Algorithm on Manycore Systems

Lattice Boltzmann method (LBM) is a promising approach to solving Comput...
research
11/30/2017

Lattice Boltzmann Benchmark Kernels as a Testbed for Performance Analysis

Lattice Boltzmann methods (LBM) are an important part of current computa...
research
10/22/2020

Cross-platform programming model for many-core lattice Boltzmann simulations

We present a novel, hardware-agnostic implementation strategy for lattic...
research
05/17/2023

OpenLB User Guide: Associated with Release 1.6 of the Code

OpenLB is an object-oriented implementation of LBM. It is the first impl...
research
11/29/2017

An Abstract Method Linearization for Detecting Source Code Plagiarism in Object-Oriented Environment

Despite the fact that plagiarizing source code is a trivial task for mos...

Please sign up or login with your details

Forgot password? Click here to reset