This paper presents an optimized framework for simulating aeroacoustic flow on unstructured meshes. The libFastMesh (LFM) framework is based on a low-dissipation finite–volume discretization, together with high-order explicit time integration, for direct computation of aeroacoustic fields. These methods were previously implemented in caafoam, an OpenFOAM-based solver developed by D'Alessandro et al. [1] to resolve aeroacoustic flows. The new framework is specifically developed from scratch to alleviate two of the main bottlenecks currently limiting the performance of OpenFOAM-based solvers at large scale: memory bandwidth and inter-node communication. Compact data structures and compute kernel fusion are employed to enhance cache utilization and re-use, respectively. Separate treatment of inter-process boundary cells, together with non-blocking MPI communication enable effective overlap between communication and flux computations. The accuracy and robustness of libFastMesh are established via simulations of well-established aeroacoustic flow benchmarks. Comparison to previous simulation results obtained with caafoam, and to DNS data serve to validate the code. Finally, the effectiveness of the aforementioned optimizations is demonstrated through rigorous analysis of the proposed solver performance in single-node and multi-node operation modes. The obtained results show that libFastMesh offers a speed-up of up to 20x with respect to the previously developed OpenFOAM-based solver, caafoam, in large-scale computations. Moreover, LFM is shown to scale extremely for cell-per-core ratios of less than 500. These results are particularly appealing given the highly resource-demanding nature of direct computational aeroacoustics (CAA). Consequently, LFM could be an extremely attractive tool for scientists who wish to conduct large-scale CAA simulations on modern, exascale architectures. Program summaryProgram Title: libFastMeshCPC Library link to program files:https://doi.org/10.17632/7w9fy2xtcf.1Developer's repository link:https://github.com/TRC-HPC/LFM_PublicLicensing provisions: GPLv3Programming language: C++Nature of problem: This software solves compressible Navier–Stokes equations. The adopted numerics and flow models allow to capture with high accuracy aerodinamically generated sound. The solver is also designed to take advantage of the massively parallel computing systems which are strictly required for facing real–life aeroacoustic problems.Solution method: The libFastMesh (LFM) framework is based on a low-dissipation finite–volume discretization, together with high-order explicit time integration, for direct computation of aeroacoustic fields on unstructured meshes. Convective terms can be approximated using either the Kurganov–Noelle–Petrova (KNP) scheme or Pirozzoli's energy conserving approach. Time integration is fully–explicit and relies on a low-storage, 4th order Runge–Kutta scheme. The solver is specifically developed to run efficiently on modern many-core CPUs, and at large-scale where it exhibits excellent strong scaling features. This is made possible thanks to several optimizations that alleviate memory bandwidth and inter-node communication bottlenecks.Additional comments: OpenFOAM-v2112+ is an installation prerequisite. Standard OpenFOAM pre-processing and post-processing tools, as well as mesh decomposition and reordering methods may be used with the solver.
Read full abstract