[论文解读] Porting Large HPC Applications to GPU Clusters: The Codes GENE and VERTEX
本文展示了将两个大规模HPC应用——用于离子等离子体湍流模拟的GENE和用于核心坍缩超新星模拟的VERTEX——通过CUDA移植到GPU加速集群。作者通过优化GPU内核和平衡CPU-GPU工作负载,实现了最高两倍的性能提升,证明了异构架构可显著缩短生产级科学计算的时间至解算,且不损失可扩展性。
We have developed GPU versions for two major high-performance-computing (HPC) applications originating from two different scientific domains. GENE is a plasma microturbulence code which is employed for simulations of nuclear fusion plasmas. VERTEX is a neutrino-radiation hydrodynamics code for "first principles"-simulations of core-collapse supernova explosions. The codes are considered state of the art in their respective scientific domains, both concerning their scientific scope and functionality as well as the achievable compute performance, in particular parallel scalability on all relevant HPC platforms. GENE and VERTEX were ported by us to HPC cluster architectures with two NVidia Kepler GPUs mounted in each node in addition to two Intel Xeon CPUs of the Sandy Bridge family. On such platforms we achieve up to twofold gains in the overall application performance in the sense of a reduction of the time to solution for a given setup with respect to a pure CPU cluster. The paper describes our basic porting strategies and benchmarking methodology, and details the main algorithmic and technical challenges we faced on the new, heterogeneous architecture.
研究动机与目标
- 通过将大型生产级HPC应用移植到GPU加速集群,实现显著的性能提升。
- 解决在现有并行可扩展性基础上,将GPU加速集成到复杂、高度优化的科学代码中的挑战。
- 评估在聚变能与天体物理学真实HPC工作负载中,GPU卸载的可行性与性能增益。
- 识别并克服异构架构中数据移动与内核移植的关键瓶颈。
- 评估使用低级GPU内核在长期科学应用中的可持续性、可维护性与成本效益。
提出的方法
- 采用CUDA编程模型进行GPU内核开发,优先考虑性能而非可移植性,因为与CUDA-Fortran相比,GPU性能更优。
- 以同等节点数量下的高度优化CPU-only运行作为性能基线,以衡量加速比,确保公平比较。
- 对GENE和VERTEX进行详细性能剖析,识别出计算密集型内核,如场求解器和非线性项计算。
- 优化CPU与GPU之间的数据传输,发现其是GENE中的主要瓶颈,尤其在PCIe 2.0上更为明显。
- 在节点间平衡CPU与GPU的工作负载,避免资源闲置,最大化整体应用吞吐量。
- 避免使用OpenACC和OpenMP方法,因其性能劣于手工优化的CUDA内核。
实验结果
研究问题
- RQ1大型生产级HPC应用(如GENE和VERTEX)在移植到GPU加速集群后,能否实现显著的性能提升?
- RQ2将复杂、高度并行的科学代码迁移到异构CPU-GPU架构时,主要性能瓶颈是什么?
- RQ3GPU加速如何影响现有HPC应用的弱可扩展性?
- RQ4在不重构核心算法的前提下,性能提升的潜力有多大?
- RQ5使用低级GPU内核时,开发工作量、可维护性与长期可持续性之间的权衡如何?
主要发现
- 作者在每节点配备两块K20X GPU的GPU加速集群上,实现了GENE和VERTEX整体应用性能最高两倍的提升。
- GENE的性能目前受限于CPU与GPU之间的数据传输,预计未来使用PCIe 3.0硬件后将得到改善。
- VERTEX在GPU集群上表现出优异的弱可扩展性,保持了其原有的强性能特征。
- 若将块三对角系统线性求解器移植到GPU,可实现三倍性能提升,但目前受限于缺乏可被设备调用的LAPACK功能。
- GENE和VERTEX的CPU-only版本已高度优化,因此尽管基线性能极高,GPU卸载仍带来了显著的性能增益。
- 每款代码数人月的开发投入,因性能提升而具有充分合理性,尤其在能效与硬件成本节约方面优势明显。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。