Development and performance of a HemeLB GPU code for human-scale blood flow simulation
arXiv:2202.11770 · doi:10.1016/j.cpc.2022.108548
Abstract
In recent years, it has become increasingly common for high performance computers (HPC) to possess some level of heterogeneous architecture - typically in the form of GPU accelerators. In some machines these are isolated within a dedicated partition, whilst in others they are integral to all compute nodes - often with multiple GPUs per node - and provide the majority of a machine's compute performance. In light of this trend, it is becoming essential that codes deployed on HPC are updated to execute on accelerator hardware. In this paper we introduce a GPU implementation of the 3D blood flow simulation code HemeLB that has been developed using CUDA C++. We demonstrate how taking advantage of NVIDIA GPU hardware can achieve significant performance improvements compared to the equivalent CPU only code on which it has been built whilst retaining the excellent strong scaling characteristics that have been repeatedly demonstrated by the CPU version. With HPC positioned on the brink of the exascale era, we use HemeLB as a motivation to provide a discussion on some of the challenges that many users will face when deploying their own applications on upcoming exascale machines.
References in corpus (8)
- Numerical Simulations of Particulate Suspensions via a Discretized Boltzmann Equation Part I. Theoretical Foundation
- waLBerla: A block-structured high-performance framework for multiphysics simulations
- Massively parallel lattice-Boltzmann codes on large GPU clusters
- Choice of boundary condition for lattice-Boltzmann simulation of moderate Reynolds number flow in complex domains
- Analyzing and Modeling the Performance of the HemeLB Lattice-Boltzmann Simulation Environment
- Memory transfer optimization for a lattice Boltzmann solver on Kepler architecture nVidia GPUs
- Cross-platform programming model for many-core lattice Boltzmann simulations
- Optimization of Lattice Boltzmann Simulations on Heterogeneous Computers