Architecture Specific Generation of Large Scale Lattice Boltzmann Methods for Sparse Complex Geometries

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Suffa, Philipp, Holzer, Markus, Köstler, Harald, Rüde, Ulrich
Format: Preprint
Publié: 2024
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866911986657263616
author Suffa, Philipp
Holzer, Markus
Köstler, Harald
Rüde, Ulrich
author_facet Suffa, Philipp
Holzer, Markus
Köstler, Harald
Rüde, Ulrich
contents We implement and analyse a sparse / indirect-addressing data structure for the Lattice Boltzmann Method to support efficient compute kernels for fluid dynamics problems with a high number of non-fluid nodes in the domain, such as in porous media flows. The data structure is integrated into a code generation pipeline to enable sparse Lattice Boltzmann Methods with a variety of stencils and collision operators and to generate efficient code for kernels for CPU as well as for AMD and NVIDIA accelerator cards. We optimize these sparse kernels with an in-place streaming pattern to save memory accesses and memory consumption and we implement a communication hiding technique to prove scalability. We present single GPU performance results with up to 99% of maximal bandwidth utilization. We integrate the optimized generated kernels in the high performance framework WALBERLA and achieve a scaling efficiency of at least 82% on up to 1024 NVIDIA A100 GPUs and up to 4096 AMD MI250X GPUs on modern HPC systems. Further, we set up three different applications to test the sparse data structure for realistic demonstrator problems. We show performance results for flow through porous media, free flow over a particle bed, and blood flow in a coronary artery. We achieve a maximal performance speed-up of 2 and a significantly reduced memory consumption by up to 75% with the sparse / indirect-addressing data structure compared to the direct-addressing data structure for these applications.
format Preprint
id arxiv_https___arxiv_org_abs_2408_06880
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Architecture Specific Generation of Large Scale Lattice Boltzmann Methods for Sparse Complex Geometries
Suffa, Philipp
Holzer, Markus
Köstler, Harald
Rüde, Ulrich
Distributed, Parallel, and Cluster Computing
Performance
We implement and analyse a sparse / indirect-addressing data structure for the Lattice Boltzmann Method to support efficient compute kernels for fluid dynamics problems with a high number of non-fluid nodes in the domain, such as in porous media flows. The data structure is integrated into a code generation pipeline to enable sparse Lattice Boltzmann Methods with a variety of stencils and collision operators and to generate efficient code for kernels for CPU as well as for AMD and NVIDIA accelerator cards. We optimize these sparse kernels with an in-place streaming pattern to save memory accesses and memory consumption and we implement a communication hiding technique to prove scalability. We present single GPU performance results with up to 99% of maximal bandwidth utilization. We integrate the optimized generated kernels in the high performance framework WALBERLA and achieve a scaling efficiency of at least 82% on up to 1024 NVIDIA A100 GPUs and up to 4096 AMD MI250X GPUs on modern HPC systems. Further, we set up three different applications to test the sparse data structure for realistic demonstrator problems. We show performance results for flow through porous media, free flow over a particle bed, and blood flow in a coronary artery. We achieve a maximal performance speed-up of 2 and a significantly reduced memory consumption by up to 75% with the sparse / indirect-addressing data structure compared to the direct-addressing data structure for these applications.
title Architecture Specific Generation of Large Scale Lattice Boltzmann Methods for Sparse Complex Geometries
topic Distributed, Parallel, and Cluster Computing
Performance
url https://arxiv.org/abs/2408.06880