Domain-Specific Languages (DSLs) improve programmers productivity by decoupling problem descriptions from algorithmic implementations. However, DSLs for High-Performance Computing (HPC) have two critical non-functional 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 problem, low-level optimisations and parallelization 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.
翻译:特定域语言(DSLs)通过将问题描述与算法实施脱钩来提高程序员的生产率;然而,高性能计算(HPC)的DSL(DSL)有两个关键的非功能性要求:性能和可缩放性;本文件介绍了从计算流体动态(CFD)问题的抽象数学规格中自动生成最佳平行代码的过程,这些代码以人工优化的方式发挥作用和规模。我们自觉地在Saif(一个用于解决CFD问题的DSL)、低水平优化和平行化战略(DSL)中结合了起来,使得高性能的单一核心处决能够有效地扩大到多核心和分布的环境。我们的成果表明,高水平的DSLs可以通过透明地利用最新的HPC技术提供竞争性的绩效。