Cache blocking for flux reconstruction: extension to Navier-Stokes equations and anti-aliasing
File(s) 1-s2.0-S0010465524002558-main.pdf (1.55 MB)
Published version
Author(s)
Akkurt, Semih
Witherden, Freddie
Vincent, Peter
Type
Journal Article
Abstract
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.
Date Issued
2024-12
Date Acceptance
2024-07-31
Citation
Computer Physics Communications, 2024, 305
ISSN
0010-4655
Publisher
Elsevier BV
Journal / Book Title
Computer Physics Communications
Volume
305
Copyright Statement
© 2024 The Author(s). Published by Elsevier B.V. This is an open access article under the CC BY license (http://creativecommons.org/licenses/by/4.0/).
License URL
Identifier
http://dx.doi.org/10.1016/j.cpc.2024.109332
Publication Status
Published
Article Number
109332
Date Publish Online
2024-08-05
