arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2001.11806cs.MScs.CEcs.DC
收藏

lbmpy:高效并行格子Boltzmann方法的自动代码生成

lbmpy: Automatic code generation for efficient parallel lattice Boltzmann methods

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

摘要:

格子玻尔兹曼方法是一种流行的介观替代宏观计算流体动力学求解器。已经开发了许多变体,这些变体在复杂性、准确性和计算成本方面各不相同。扩展可用于模拟多相、多组分、湍流或非牛顿流。在这项工作中,我们提出了lbcash,一个代码生成包,支持各种不同的方法,并提供了一个通用的开发环境,以及新的计划。一个高层次的特定领域的语言允许用户制定,扩展和测试各种格子玻尔兹曼计划。方法规范以符号中间表示形式表示。在这种中间表示上操作的变换优化和并行化方法,产生高效的格子玻尔兹曼计算内核,不仅用于单弛豫时间和双弛豫时间方案,而且用于多弛豫时间、累积量和熵稳定方法。通过在SuperMUC-NG超级计算系统上进行缩放实验,证明了与HPC框架waLBerla的集成可以实现大规模并行分布式仿真

英文摘要:

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

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑