论文标题

lbmpy:自动代码生成,用于有效的平行格boltzmann方法

lbmpy: Automatic code generation for efficient parallel lattice Boltzmann methods

论文作者

Bauer, Martin, Köstler, Harald, Rüde, Ulrich

论文摘要

晶格玻尔兹曼方法是宏观计算流体动力学求解器的流行介观替代品。已经开发出许多变体的复杂性,准确性和计算成本各不相同。扩展可用于模拟多相,多组分,湍流或非牛顿流。在这项工作中,我们提出了LBMPY,这是一个支持多种不同方法的代码生成包,并为新方案提供了通用的开发环境。高级域特异性语言允许用户制定,扩展和测试各种晶格Boltzmann方案。方法规范在符号中间表示中表示。在此中间表示方面进行的转换优化和并行化了该方法,不仅用于单次和两 - 释放时间方案,还用于多余时间,累积时间和熵稳定的方法,产生了高效的晶格Boltzmann计算内核。在HPC框架中的集成使沃尔伯拉(Walberla)可以实现大规模平行的分布式模拟,这是通过在SuperMuc-NG超级计算系统上的缩放实验来证明的

Lattice Boltzmann methods are a popular mesoscopic alternative to macroscopic computational fluid dynamics solvers. Many variants have been developed that vary in complexity, accuracy, and computational cost. Extensions are available to simulate multi-phase, multi-component, turbulent, or non-Newtonian flows. In this work we present lbmpy, a code generation package that supports a wide variety of different methods and provides a generic development environment for new schemes as well. A high-level domain-specific language allows the user to formulate, extend and test various lattice Boltzmann schemes. The method specification is represented in a symbolic intermediate representation. Transformations that operate on this intermediate representation optimize and parallelize the method, yielding highly efficient lattice Boltzmann compute kernels not only for single- and two-relaxation-time schemes but also for multi-relaxation-time, cumulant, and entropically stabilized methods. An integration into the HPC framework waLBerla makes massively parallel, distributed simulations possible, which is demonstrated through scaling experiments on the SuperMUC-NG supercomputing system

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源