High-Performance Implementation of Matrix-Free Runge-Kutta Discontinuous Galerkin Method for Euler Equations

Published: 01 Jan 2018, Last Modified: 13 Nov 2024HPCC/SmartCity/DSS 2018EveryoneRevisionsBibTeXCC BY-SA 4.0
Abstract: DG method is one of the mainstream high-order numerical discretization methods of CFD, and the RKDG which combines the Runge-Kutta explicit time stepping with DG space discretization plays an important role in the DG explicit numerical simulation. Even though the matrix-free has already been applied to improving the performance of the DG method, it has gained less attention relatively. In order to improve the RKDG's performance for Euler equations, we have implemented a matrix-free RKDG on the HopeFOAM, an open source CFD code. In this paper, we design and implement data structures to apply sum-factorization to the RKDG space discretization. During the simulation process, the arithmetic operations and memory cost decrease, which will improve the serial performance. For the data-level parallelism, we design the calculation strategy and vectorize the data to make it ideally suitable for the SIMD instructions, so that we make the most of the multiple processing elements of CPU. The experiment results show that matrix-free implementation can effectively speed up RKDG simulation on Euler equations and the performance improvement in three-dimensional space is much better than that in two-dimensions, whose maximum speed-up ratios are 26.287 and 8.278 respectively. Moreover, we test the parallel scalability of matrix-free RKDG implementation and the result indicates that matrix-free implementation does not lower the parallel speed-up ratio of HopeFOAM.
Loading