cfdSCOPE: A Fluid-Dynamics Proxy App for Teaching Performance Engineering
Peter Arzt, Sebastian Kreutzer, Tim Jammer, Christian Bischof
TL;DR
cfdSCOPE provides an accessible HPC teaching tool by offering a compact, open-source proxy that models incompressible flow via a lid-driven cavity benchmark. The proxy is implemented in a self-contained C++ codebase employing a staggered-grid discretization and a PCG solver on a CSR matrix, with a deliberately simple OpenMP-based parallelism to reveal optimization opportunities. The authors demonstrate substantial runtime improvements through a structured optimization workflow, reporting a 76% speedup and detailed analyses of strong scaling and roofline performance. This work delivers a practical platform for course-based learning in performance engineering and presents concrete, transferable optimization techniques such as memory reuse, simplified preconditioning, in-place computation, and improved memory access, with potential to extend to distributed-memory architectures in the future.
Abstract
Teaching performance engineering in high-performance computing (HPC) requires example codes that demonstrate bottlenecks and enable hands-on optimization. However, existing HPC applications and proxy apps often lack the balance of simplicity, transparency, and optimization potential needed for effective teaching. To address this, we developed cfdSCOPE, a compact, open-source computational fluid dynamics (CFD) proxy app specifically designed for educational purposes. cfdSCOPE simulates flow in a 3D volume using sparse linear algebra, a common HPC workload, and comprises fewer than 1,100 lines of code. Its minimal dependencies and transparent design ensure students can fully control and optimize performance-critical aspects, while its naive OpenMP parallelization provides significant optimization opportunities, thus making it an ideal tool for teaching performance engineering.
