IMEXLBM 1.0: A Proxy Application based on the Lattice Boltzmann Method for solving Computational Fluid Dynamic problems on GPUs

01/27/2022
by   Geng Liu, et al.
0

The US Department of Energy launched the Exascale Computing Project (ECP) in 2016 as part of a coordinated effort to achieve the next generation of high-performance computing (HPC) and to accelerate scientific discovery. The Exascale Proxy Applications Project began within the ECP to: (1) improve the quality of proxies created by the ECP (2) provide small, simplified codes which share important features of large applications and (3) capture programming methods and styles that drive requirements for compilers and other elements of the tool chain. This article describes one Proxy Application (or "proxy app") suite called IMEXLBM which is an open-source, self-contained code unit, with minimal dependencies, that is capable of running on heterogeneous platforms like those with graphic processing units (GPU) for accelerating the calculation. In particular, we demonstrate functionality by solving a benchmark problem in computational fluid dynamics (CFD) on the ThetaGPU machine at the Argonne Leadership Computing Facility (ALCF). Our method makes use of a domain-decomposition technique in conjunction with the message-passing interface (MPI) standard for distributed memory systems. The OpenMP application programming interface (API) is employed for shared-memory multi-processing and offloading critical kernels to the device (i.e. GPU). We also verify our effort by comparing data generated via CPU-only calculations with data generated with CPU+GPU calculations. While we demonstrate efficacy for single-phase fluid problems, the code-unit is designed to be versatile and enable new physical models that can capture complex phenomena such as two-phase flow with interface capture.

READ FULL TEXT

page 16

page 20

research
02/25/2021

The PetscSF Scalable Communication Layer

PetscSF, the communication component of the Portable, Extensible Toolkit...
research
01/15/2023

Synthesizing Proxy Applications for MPI Programs

Proxy applications (proxy-apps) are basic tools for evaluating the perfo...
research
01/27/2022

Porting OpenACC to OpenMP on heterogeneous systems

This documentation is designed for beginners in Graphics Processing Unit...
research
02/24/2021

GPU-aware Communication with UCX in Parallel Programming Models: Charm++, MPI, and Python

As an increasing number of leadership-class systems embrace GPU accelera...
research
05/30/2023

Automating GPU Scalability for Complex Scientific Models: Phonon Boltzman Transport Equation

Heterogeneous computing environments combining CPU and GPU resources pro...
research
10/22/2020

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

We present a novel, hardware-agnostic implementation strategy for lattic...

Please sign up or login with your details

Forgot password? Click here to reset