首页> 外文期刊>Journal of computational science >lbmpy: Automatic code generation for efficient parallel lattice Boltzmann methods
【24h】

lbmpy: Automatic code generation for efficient parallel lattice Boltzmann methods

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

获取原文
获取原文并翻译 | 示例

摘要

Lattice Boltzmann methods are a popular mesoscopic alternative to classical computational fluid dynamics based on the macroscopic equations of continuum mechanics. Many variants of lattice Boltzmann methods have been developed that vary in complexity, accuracy, and computational cost. Extensions are available to simulate multi phase, multi-component, turbulent, and non-Newtonian flows. In this work we present lbmpy, a code generation package that supports a wide variety of different lattice Boltzmann methods. Additionally, lbmpy provides a generic development environment for new schemes. A high-level domain-specific language allows the user to formulate, extend and test various lattice Boltzmann methods. In all cases, the lattice Boltzmann method can be specified in symbolic form. Transformations that operate on this symbolic representation yield highly efficient compute kernels. This is achieved by automatically parallelizing the methods, and by various application-specific automatized steps that optimize the resulting code. This pipeline of transformations can be applied to a wide range of lattice Boltzmann variants, including singleand two-relaxation-time schemes, multi-relaxation-time methods, as well as the more advanced cumulant methods, and entropically stabilized methods. lbmpy can be integrated into high-performance computing frameworks to enable massively parallel, distributed simulations. This is demonstrated using the WALBERLA multiphysics package to conduct scaling experiments on the SuperMUCNG supercomputing system on up to 147 456 compute cores.
机译:格子Boltzmann方法是基于连续力学的宏观方程的古典计算流体动力学是一种普遍的思科替代品。已经开发出许多格子Boltzmann方法的变体,这些方法在复杂性,准确性和计算成本中变化。扩展可用于模拟多相,多组分,湍流和非牛顿流。在这项工作中,我们呈现LBMPY,一种代码生成包,支持各种不同的格子Boltzmann方法。此外,LBMPY为新方案提供了通用开发环境。特定于高级域的语言允许用户制定,延伸和测试各种格子Boltzmann方法。在所有情况下,格子Boltzmann方法可以以符号形式指定。在该符号表示上运行的转换产生高效的计算内核。这是通过自动并行化方法来实现的,并且通过优化所得代码的各种特定于应用程序的自动化步骤来实现。该转换管道可以应用于各种格子玻璃板变体,包括单片半的双放松时间方案,多放松时间方法以及更先进的累积方法,以及熵稳定的方法。 LBMPY可以集成到高性能计算框架中,以实现大规模并行,分布式模拟。使用Walberla Multiphysics封装来证明这是在高达147 456计算核上的超级Sucuck Supercomputing系统上进行扩展实验。

著录项

  • 来源
    《Journal of computational science》 |2021年第2期|101269.1-101269.15|共15页
  • 作者单位

    Friedrich Alexander Univ Erlangen Nurnberg Lehrstuhl Syst Simulat Cauerstr 11 D-91058 Erlangen Germany;

    Friedrich Alexander Univ Erlangen Nurnberg Lehrstuhl Syst Simulat Cauerstr 11 D-91058 Erlangen Germany;

    Friedrich Alexander Univ Erlangen Nurnberg Lehrstuhl Syst Simulat Cauerstr 11 D-91058 Erlangen Germany|CERFACS F-31057 Toulouse 1 France;

  • 收录信息
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

    Meta programming; LBM; hpc;

    机译:元编程;LBM;HPC;
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号