Multi-GPU Acceleration of PALABOS Fluid Solver using C++ Standard Parallelism

📅 2025-06-10
📈 Citations: 0
✨ Influential: 0
📄 PDF
🤖 AI Summary
This work addresses scalability and maintainability challenges of the Palabos lattice Boltzmann solver on multi-GPU platforms. Methodologically, it introduces a zero-external-dependency, hardware-agnostic C++ native multi-GPU acceleration framework that integrates a CPU–GPU hybrid execution model with dynamic task scheduling. It pioneers a portable GPU kernel generation mechanism built entirely on standard C++ features—namely `std::execution` and template metaprogramming—unifying object-oriented CPU abstractions with data-centric GPU architectures. Key contributions include: (i) a fully modular, user-extensible GPU acceleration infrastructure; (ii) single-GPU performance on par with hand-optimized CUDA implementations; and (iii) excellent weak and strong scaling across 3D multiphysics benchmarks—including Taylor–Green vortices, lid-driven cavity flow, and Berea sandstone pore-scale flow—demonstrating robust performance up to large-scale GPU configurations.

Technology Category

Machine Learning: Hardware-aware MLData Mining & Knowledge Management: Scalability, Parallel & Distributed SystemsNatural Language Processing: Code Generation / Program Synthesis from Natural Language

Application Category

Graph Algorithms and Modeling for the Web: Efficient manipulation of static and dynamic Web-related graphsSystems and Infrastructure for Web, Mobile and WoT: Applied ML and AI for Web-based mobile applicationsEconomics, Online Markets and Human Computation: Cost models of using LLMs in production systems
📝 Abstract
This article presents the principles, software architecture, and performance analysis of the GPU port of the lattice Boltzmann software library Palabos (J. Latt et al.,"Palabos: Parallel lattice Boltzmann solver", Comput. Math. Appl. 81, 334-350, (2021)). A hybrid CPU-GPU execution model is adopted, in which numerical components are selectively assigned to either the CPU or the GPU, depending on considerations of performance or convenience. This design enables a progressive porting strategy, allowing most features of the original CPU-based codebase to be gradually and seamlessly adapted to GPU execution. The new architecture builds upon two complementary paradigms: a classical object-oriented structure for CPU execution, and a data-oriented counterpart for GPUs, which reproduces the modularity of the original code while eliminating object-oriented overhead detrimental to GPU performance. Central to this approach is the use of modern C++, including standard parallel algorithms and template metaprogramming techniques, which permit the generation of hardware-agnostic computational kernels. This facilitates the development of user-defined, GPU-accelerated components such as collision operators or boundary conditions, while preserving compatibility with the existing codebase and avoiding the need for external libraries or non-standard language extensions. The correctness and performance of the GPU-enabled Palabos are demonstrated through a series of three-dimensional multiphysics benchmarks, including the laminar-turbulent transition in a Taylor-Green vortex, lid-driven cavity flow, and pore-scale flow in Berea sandstone. Despite the high-level abstraction of the implementation, the single-GPU performance is similar to CUDA-native solvers, and multi-GPU tests exhibit good weak and strong scaling across all test cases.
Problem

Research questions and friction points this paper is trying to address.

Accelerating lattice Boltzmann solver using multi-GPU with C++ parallelism
Enabling hybrid CPU-GPU execution for flexible component assignment
Maintaining code modularity while optimizing GPU performance
Innovation

Methods, ideas, or system contributions that make the work stand out.

Hybrid CPU-GPU execution model
Modern C++ standard parallelism
Data-oriented GPU architecture
🔎 Similar Papers
No similar papers found.
Jonas Latt
Jonas Latt
Associate Professor, University of Geneva
lattice boltzmann methodcomputational fluid dynamicshigh performance computingscientific computing
C
Christophe Coreixas
Institute for Advanced Study, Beijing Normal - Hong Kong Baptist University, Zhuhai 519088, China; Department of Computer Science, University of Geneva, 1227 Carouge, Switzerland