Skip to main content
QUICK REVIEW

[论文解读] Improving strong scaling of the Conjugate Gradient method for solving large linear systems using global reduction pipelining

Siegfried Cools, J. Cornelis|arXiv (Cornell University)|May 15, 2019
Matrix Theory and Algorithms被引用 5
一句话总结

本文提出了一种深度流水线化共轭梯度(p(l)-CG)方法,通过将全局规约与计算和通信重叠,提升在分布式内存HPC系统上的强可扩展性。通过在迭代之间交错异步MPI_Iallreduce调用,p(l)-CG在经典CG的基础上实现了高达O(l)的理论加速,在使用PETSc的1024个节点(每个节点16个进程)上进行了验证,展示了在通信受限场景下的显著性能提升。

ABSTRACT

This paper presents performance results comparing MPI-based implementations of the popular Conjugate Gradient (CG) method and several of its communication hiding (or 'pipelined') variants. Pipelined CG methods are designed to efficiently solve SPD linear systems on massively parallel distributed memory hardware, and typically display significantly improved strong scaling compared to classic CG. This increase in parallel performance is achieved by overlapping the global reduction phase (MPI_Iallreduce) required to compute the inner products in each iteration by (chiefly local) computational work such as the matrix-vector product as well as other global communication. This work includes a brief introduction to the deep pipelined CG method for readers that may be unfamiliar with the specifics of the method. A brief overview of implementation details provides the practical tools required for implementation of the algorithm. Subsequently, easily reproducible strong scaling results on the US Department of Energy (DoE) NERSC machine 'Cori' (Phase I - Haswell nodes) on up to 1024 nodes with 16 MPI ranks per node are presented using an implementation of p(l)-CG that is available in the open source PETSc library. Observations on the staggering and overlap of the asynchronous, non-blocking global communication phases with communication and computational kernels are drawn from the experiments.

研究动机与目标

  • 解决经典共轭梯度(CG)方法在分布式内存系统中因点积和范数计算的全局同步导致的强可扩展性瓶颈。
  • 通过算法重构减少全局通信开销的影响,克服经典CG在大规模系统上的性能退化。
  • 证明流水线化CG变体(p(l)-CG)可通过将全局规约与计算和通信重叠,实现更优的强可扩展性。
  • 使用NERSC Cori系统(最多1024个节点)在真实HPC工作负载中验证流水线化CG的有效性。
  • 突出展示MPI3的非阻塞、异步通信在实现可扩展、通信隐藏的Krylov求解器方面的实际优势。

提出的方法

  • 使用MPI非阻塞集合操作(MPI_Iallreduce)实现p(l)-CG,以尽早启动全局规约,并与后续的计算和通信阶段重叠。
  • 设计算法使得某次迭代的全局规约操作与后续迭代中的矩阵-向量乘法(spmv)和向量更新(axpy)重叠。
  • 利用流水线长度l,使l+1个迭代可同时进行,从而在多个迭代间交错安排通信和计算。
  • 利用深度流水线技术,通过与本地计算及其他全局通信重叠,隐藏全局规约的延迟。
  • 使用开源PETSc库实现并基准测试p(l)-CG,确保可复现性和实际相关性。
  • 在NERSC Cori(Haswell)系统上进行强可扩展性实验,最多使用1024个节点和每个节点16个MPI进程。

实验结果

研究问题

  • RQ1在大规模分布式内存系统上,与经典CG相比,流水线化CG方法在多大程度上能改善强可扩展性?
  • RQ2将全局规约与计算和通信重叠,在多大程度上能有效缓解同步瓶颈?
  • RQ3在通信受限的工作负载中,随着流水线长度l的增加,可实现的性能提升有多大?
  • RQ4在何种场景下,'通信交错'效应能显著优于经典CG和较短流水线?
  • RQ5使用非阻塞MPI调用(MPI_Iallreduce)在多大程度上促进了流水线化CG的可扩展性和效率?

主要发现

  • 在最多1024个节点的NERSC Cori系统上,当l ≥ 2时,p(l)-CG相比经典CG表现出显著更好的强可扩展性,证明了通信隐藏的有效性。
  • 当全局规约与计算和通信实现最优重叠时,理论上可实现相对于经典CG的O(l)加速。
  • 对于通信受限问题(如含400万个未知数的对角系统),由于重叠了全局通信阶段,p(2)-CG相比p(1)-CG实现了显著的性能提升。
  • 在通信开销不占主导的场景(如二维拉普拉斯问题)中,较长的流水线(l ≥ 3)带来的性能增益逐渐减弱,因为glred与spmv的耗时相近。
  • 通过在多个迭代间交错安排全局通信阶段,增强了对glred运行时波动的鲁棒性,并改善了整体负载均衡。
  • 使用MPI_Iallreduce实现非阻塞全局规约对实现有效重叠至关重要,作者观察到当重叠成功实现时,性能有显著提升。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。