Cache blocking for flux reconstruction: Extension to Navier-Stokes equations and anti-aliasing
In this article, cache blocking is implemented for the Navier Stokes equations with anti-aliasing support on mixed grids in PyFR for CPUs. In particular, cache blocking is used as an alternative to kernel fusion to eliminate unnecessary data movements between kernels at the main memory level. Specifically, kernels that exchange data are grouped together, and these groups are then executed on small sub-regions of the domain that fit in per-core private data cache. Additionally, cache blocking is also used to efficiently implement a tensor product factorisation of the interpolation operators associated with anti-aliasing. By using cache blocking, the intermediate results between application of the sparse factors are stored in per-core private data cache, and a significant amount of data movement from main memory is avoided. In order to assess the performance gains a theoretical model is developed, and the implementation is benchmarked using a compressible 3D Taylor-Green vortex test case on both hexahedral and prismatic grids, with third-, fourth-, and fifth-order solution polynomials. The expected performance gains based on the theoretical model range from 1.99 to 2.83, and the speedups obtained in practice range from 1.51 to 3.91 compared to PyFR v1.11.0.
Authors
- Peter Vincent (ORCID: https://orcid.org/0000-0002-1314-8827)
- Freddie Witherden (ORCID: https://orcid.org/0000-0003-2343-412X)
- Semih Akkurt
Institutions
- Imperial College London (GB)
- Texas A&M University (US)
Publication Details
- Journal
- Computer Physics Communications
- Published
- 2024-08-05
- DOI
- https://doi.org/10.1016/j.cpc.2024.109332
- Primary Topic
- Advanced Numerical Methods in Computational Mathematics
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- Imperial College London
- European Commission
- Engineering and Physical Sciences Research Council
- Air Force Office of Scientific Research