Creating scalable, high performance PDE-based simulations requires a suitable combination of discretizations, differential operators, preconditioners and solvers. The required combination changes with the application and with the available hardware, yet software development time is a severely limited resource for most scientists and engineers. Here we demonstrate that generating simulation code from a high-level Python interface provides an effective mechanism for creating high performance simulations from very few lines of user code. We demonstrate that moving from one supercomputer to another can require significant algorithmic changes to achieve scalable performance, but that the code generation approach enables these algorithmic changes to be achieved with minimal development effort.
翻译:创建可缩放的、高性能的PDE模拟,需要将离散性、不同操作者、先决条件和溶解器适当结合起来。需要与应用程序和现有硬件进行所需的组合修改,但软件开发时间对大多数科学家和工程师来说是一个非常有限的资源。在这里,我们证明从高级Python界面生成模拟代码为从极少数几行用户代码创建高性能模拟提供了一个有效的机制。我们证明,从一台超级计算机到另一台计算机,可能需要重大的算法变化,才能实现可缩放性,但代码生成方法使得这些算法变化能够在最小的开发努力中实现。