sputniPIC:面向多GPU系统的隐式粒子网格代码
分布式、并行与集群计算
2021-07-05 v1
摘要
大规模等离子体模拟对于增进我们对聚变装置、空间及天体物理系统的理解至关重要。粒子网格(PIC)代码已在HPC系统上成功模拟众多等离子体现象。如今,旗舰级超级计算机每个计算节点配备多个GPU,以高功率效率实现前所未有的计算能力。PIC代码需要新的算法设计与实现来利用此类加速平台。本工作中,我们设计并优化了一个名为sputniPIC的三维隐式PIC代码,以在通用多GPU计算节点上运行。我们引入了粒子分解数据布局,不同于基于CPU实现中的域分解,以利用粒子批次在GPU上重叠通信与计算。sputniPIC还原生支持不同精度表示,以在支持精简精度的硬件上实现加速。我们通过著名的GEM挑战验证sputniPIC并提供性能分析。我们在三个多GPU平台上测试sputniPIC,并报告相较sputniPIC CPU OpenMP版本性能有200-800倍提升。我们表明,在三个平台上精简精度可进一步将性能提升45%至80%。得益于这些性能改进,在配备多GPU的单个节点上,sputniPIC实现了以往仅能使用集群才能完成的大规模三维PIC模拟。
引用
@article{arxiv.2008.04397,
title = {sputniPIC: an Implicit Particle-in-Cell Code for Multi-GPU Systems},
author = {Steven W. D. Chien and Jonas Nylund and Gabriel Bengtsson and Ivy B. Peng and Artur Podobas and Stefano Markidis},
journal= {arXiv preprint arXiv:2008.04397},
year = {2021}
}
备注
Accepted for publication at the 32nd International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD 2020)