[论文解读] s-Step Orthomin and GMRES implemented on parallel computers
本文提出 s-step Orthomin 和 GMRES 方法,以提升在分层内存超级计算机上求解大规模非对称线性系统时的数据局部性和并行性。通过使用块操作(BLAS3)形成 s 个同时的搜索方向,该方法减少了内存访问流量和通信开销,在 Cray-2 上对未预条件化问题实现了最高 1.5 倍的性能加速,对预条件化问题实现了 1.3 倍加速,尤其在通过本地内存使用优化矩阵-向量乘法时效果显著。
The Orthomin ( Omin ) and the Generalized Minimal Residual method ( GMRES ) are commonly used iterative methods for approximating the solution of non-symmetric linear systems. The s-step generalizations of these methods enhance their data locality parallel and properties by forming s simultaneous search direction vectors. Good data locality is the key in achieving near peak rates on memory hierarchical supercomputers. The theoretical derivation of the s-step Arnoldi and Omin has been published in the past. Here we derive the s-step GMRES method. We then implement s-step Omin and GMRES on a Cray-2 hierarchical memory supercomputer.
研究动机与目标
- 提升在分层内存架构上求解非对称线性系统的迭代求解器的数据局部性和并行性。
- 通过使用 BLAS3 例程将多个迭代聚合为块操作,减少内存带宽瓶颈。
- 推导并实现 s-step GMRES,扩展先前关于 s-step Orthomin 和 Arnoldi 方法的研究。
- 使用偏微分方程的有限差分离散化,在 Cray-2 超级计算机上评估性能提升。
- 通过手写 Cray 汇编语言(CAL)优化矩阵-向量乘法,利用本地内存以进一步提升性能。
提出的方法
- 通过使用 s 个同时生成的搜索方向对标准 GMRES 算法进行推广,推导出 s-step GMRES 方法,这些方向通过重复的矩阵-向量乘积生成。
- 使用 BLAS3 操作(如 GAXPY、点积)形成 s 个方向向量,将内存引用与浮点运算的比率降低 s 倍。
- 在 Cray-2 上实现 s-step Orthomin 和 GMRES,充分利用其向量流水线、本地内存和单路径内存架构。
- 应用 ILU(0) 预条件化以改善收敛性并减少迭代次数。
- 通过手写 Cray 汇编语言(CAL)优化矩阵-向量乘法,以利用本地内存并最小化主内存访问。
- 将线性组合展开为单个 GAXPY 操作,以提高指令级并行性并减少循环开销。
实验结果
研究问题
- RQ1s-step 方法是否能在如 Cray-2 这类分层内存超级计算机上显著减少内存流量并提升性能?
- RQ2s-step GMRES 方法在收敛性和执行时间方面与标准 GMRES 方法相比如何?
- RQ3当矩阵-向量乘法代价较高时,块大小 s 对收敛行为和性能的影响是什么?
- RQ4能否通过底层汇编语言优化,利用矩阵-向量乘法中的本地内存以实现更高性能?
- RQ5s-step 方法是否在减少通信和同步开销的同时,保持与标准方法相同的收敛特性?
主要发现
- 对于未预条件化系统,s-step Orthomin(2) 在 Cray-2 上相比标准 Orthomin(4) 实现了 1.5 倍的性能加速。
- s-step GMRES(2) 相比标准 GMRES(10) 实现了 1.3 倍加速,但当应用预条件化时性能增益下降,原因在于预条件器的峰值兆次浮点运算率较低。
- 对于相同问题规模,s-GMRES(2) 与 GMRES(10) 迭代次数相同,证实 s-step 方法保持了收敛行为。
- s-Omin(k) 和 s-GMRES(m) 的迭代次数与标准方法相当,但执行时间显著降低,归因于改进的数据局部性。
- 对 BLAS3 操作的循环展开未带来性能提升,表明瓶颈并非循环开销,而是内存访问模式。
- 作者预计通过在 Cray 汇编语言(CAL)中实现矩阵-向量乘法,可进一步提升性能,以充分利用本地内存并减轻主内存带宽压力。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。