Domain-Specific Languages (DSLs) improve programmers productivity by decoupling problem descriptions from algorithmic implementations. However, DSLs for High-Performance Computing (HPC) have two additional critical requirements: performance and scalability. This paper presents the automated process of generating, from abstract mathematical specifications of Computational Fluid Dynamics (CFD) problems, optimised parallel codes that perform and scale as manually optimised ones. We consciously combine within Saiph, a DSL for solving CFD problems, low-level optimisations and parallelisation strategies, enabling high-performance single-core executions which effectively scale to multi-core and distributed environments. Our results demonstrate how high-level DSLs can offer competitive performance by transparently leveraging state-of-the-art HPC techniques.
@article{arxiv.2204.12120,
title = {Automated Generation of High-Performance Computational Fluid Dynamics Codes},
author = {Sandra Macià and Pedro J. Martıínez-Ferrer and Eduard Ayguadé and Vicenç Beltran},
journal= {arXiv preprint arXiv:2204.12120},
year = {2022}
}
Comments
30 pages, 18 figures. Postprint submitted to the Journal of Computational Science (Elsevier). Article updated with reviewers' comments, additional material in section 4.3 including figures and correction of typos