Maintaining the performance of large scientific codes is a difficult task. To aid in this task, a number of mini-applications have been developed that are more tractable to analyze than large-scale production codes while retaining the performance characteristics of them. These ''mini-apps'' also enable faster hardware evaluation and, for sensitive commercial codes, allow evaluation of code and system changes outside of access approval processes. In this paper, we develop MG-CFD, a mini-application that represents a geometric multigrid, unstructured computational fluid dynamics (CFD) code, designed to exhibit similar performance characteristics without sharing commercially sensitive code. We detail our experiences of developing this application using guidelines detailed in existing research and contributing further to these. Our application is validated against the inviscid flux routine of HYDRA, a CFD code developed by Rolls-Royce plc for turbomachinery design. This paper (1) documents the development of MG-CFD, (2) introduces an associated performance model with which it is possible to assess the performance of HYDRA on new HPC architectures, and (3) demonstrates that it is possible to use MG-CFD and the performance models to predict the performance of HYDRA with a mean error of 9.2% for strong-scaling studies.
INTRODUCTIONThe rapid development of new hardware and software in High Performance Computing (HPC) is greatly benefiting scientific discovery; with each new development comes new opportunities for improving the performance of scientific applications. Evaluating the potential improvements offered by these developments is often a time consuming process due to the complexity of the applications involved, and the learning curve for new machines, architectures, and toolchains.In recognition of these challenges, many HPC centers are turning in supporting tools and methodologies (eg, predictive performance modeling [1][2][3][4] and hardware simulation 5,6 ) to evaluate new systems ahead of procurement. Additionally, mini-applications have been shown to facilitate rapid evaluation of new hardware and programming techniques; these applications capture the key performance characteristics of a parent code in a much more concise form; making them easier to work with than full production codes but equally useful in performance engineering activities.The use of mini-applications has been well documented 7-10 and has spawned several suites of such applications 11,12 for industry and research community to examine. Recent use of mini-apps includes the recently established ASiMoV strategic partnership between Rolls-Royce plc and five leading UK universities, whose aim is to achieve the first high-fidelity simulation of a complete and operating gas-turbine engine. 13 This will require several breakthroughs including achieving exascale performance of a CFD simulation code.This is an open access article under the terms of the Creative Commons Attribution License, which permits use, distribution and reproduction in any medium,...