Building an Accelerated OpenFOAM Proof-of-Concept Application using Modern C++
Giulio Malenza, Giovanni Stabile, Filippo Spiga, Robert Birke, Marco Aldinucci

TL;DR
This paper presents a proof-of-concept OpenFOAM application developed with modern C++ to leverage GPU acceleration, demonstrating improved performance through offloading computations to NVIDIA GPUs using parallel constructs.
Contribution
It introduces a modern C++ based approach for accelerating OpenFOAM applications with GPU offloading, enhancing performance and code simplicity.
Findings
GPU offloading increases OpenFOAM laplacianFoam performance
Single codebase enables multi-core and GPU acceleration
Use of modern C++ constructs simplifies parallel implementation
Abstract
The modern trend in High-Performance Computing (HPC) involves the use of accelerators such as Graphics Processing Units (GPUs) alongside Central Processing Units (CPUs) to speed up numerical operations in various applications. Leading manufacturers such as NVIDIA, Intel, and AMD are constantly advancing these architectures, augmenting them with features such as mixed precision, enhanced memory hierarchies, and specialised accelerator silicon blocks (e.g., Tensor Cores on GPU or AMX/SME engines on CPU) to enhance compute performance. At the same time, significant efforts in software development are aimed at optimizing the use of these innovations, seeking to improve usability and accessibility. This work contributes to the state-of-the-art of OpenFOAM development by presenting a working Proof-Of-Concept application built using modern ISO C++ parallel constructs. This approach, combined…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques
