中文

面向稠密与稀疏几何的格子玻尔兹曼方法的数据导向语言实现

分布式、并行与集群计算 2021-08-31 v1

摘要

格子玻尔兹曼求解器实现的性能通常主要取决于内存访问模式。因此,实现高性能需要复杂的代码来处理细致的数据布局与内存事务排序。在本工作中,我们基于一种称为数据导向语言的新方法分析了一种实现的性能,该方法允许将复杂的内存访问模式与简洁的源代码相结合。作为一个用例,我们给出并提供了 D2Q9 格子的求解器源代码,并展示了其在 GTX Titan Xp GPU 上针对高达 4096^2 节点的稠密与稀疏几何的性能。所得结果令人鼓舞:约 1000 行代码使我们能在超过 1024^2 节点的网格上达到最大理论内存带宽的 0.6 至 0.7 范围(双精度与单精度分别超过 2.5 和 5.0 GLUPS)的性能,接近当前最先进水平。然而,我们也观察到相对较高且有时难以预测的开销,特别是对于稀疏数据结构。另一个问题还有相当长的编译时间,延长了短时仿真的时间,以及缺乏对底层优化机制的访问。

关键词

引用

@article{arxiv.2108.13241,
  title  = {Data-Oriented Language Implementation of Lattice-Boltzmann Method for Dense and Sparse Geometries},
  author = {Tadeusz Tomczak},
  journal= {arXiv preprint arXiv:2108.13241},
  year   = {2021}
}

备注

17 pages, 9 figures, 2 tables