Skip to main content
QUICK REVIEW

[论文解读] Bidiagonalization with Parallel Tiled Algorithms

Mathieu Faverge, Julien Langou|arXiv (Cornell University)|Nov 18, 2016
Parallel Computing and Optimization Techniques参考文献 35被引用 3
一句话总结

本论文提出了一种基于分层归约树(FlatTS、FlatTT、Greedy 和 Auto)的分块双对角化算法——BiDiag 和 R-BiDiag,以加速多核与分布式系统上的 SVD 计算。结果表明,采用 Greedy 树的 R-BiDiag 在关键路径长度和性能方面表现更优,尤其在高瘦矩阵上优势显著,而自适应的 Auto 树可实现跨不同架构与工作负载的最优可扩展性。

ABSTRACT

We consider algorithms for going from a "full" matrix to a condensed "band bidiagonal" form using orthogonal transformations. We use the framework of "algorithms by tiles". Within this framework, we study: (i) the tiled bidiagonalization algorithm BiDiag, which is a tiled version of the standard scalar bidiagonalization algorithm; and (ii) the R-bidiagonalization algorithm R-BiDiag, which is a tiled version of the algorithm which consists in first performing the QR factorization of the initial matrix, then performing the band-bidiagonalization of the R-factor. For both bidiagonalization algorithms BiDiag and R-BiDiag, we use four main types of reduction trees, namely FlatTS, FlatTT, Greedy, and a newly introduced auto-adaptive tree, Auto. We provide a study of critical path lengths for these tiled algorithms, which shows that (i) R-BiDiag has a shorter critical path length than BiDiag for tall and skinny matrices, and (ii) Greedy based schemes are much better than earlier proposed variants with unbounded resources. We provide experiments on a single multicore node, and on a few multicore nodes of a parallel distributed shared-memory system, to show the superiority of the new algorithms on a variety of matrix sizes, matrix shapes and core counts.

研究动机与目标

  • 通过优化分块算法的双对角化阶段,解决大规模 SVD 计算中的性能瓶颈。
  • 突破以往仅限共享内存的分块双对角化方法的局限,实现多核集群上的并行分布式执行。
  • 通过引入新型归约树策略(包括 Greedy 和自适应 Auto 树),改善关键路径长度与可扩展性。
  • 在不同矩阵形状与核心数量下,评估并比较 BiDiag 与 R-BiDiag 的算法效率、通信开销与负载均衡性能。
  • 设计一种自适应 Auto 归约树,可根据硬件特性与工作负载属性动态调整,以在实际应用中实现最佳性能。

提出的方法

  • 设计两种分块双对角化算法:BiDiag(直接法)与 R-BiDiag(先对输入矩阵进行 QR 分解,再对 R 矩阵进行带状双对角化)。
  • 在 DPLASMA 框架中实现四种归约树类型——FlatTS、FlatTT、Greedy 和 Auto,利用 PaRSEC 运行时实现基于任务的并行计算。
  • 采用分层 QR(HQR)分解来构建归约树,以优化数据局部性并减少共享内存与分布式内存系统中的通信开销。
  • 提出自适应归约树,基于性能启发式策略动态选择 TS(分块到标量)或 TT(分块到分块)核函数,以最小化通信并实现负载均衡。
  • 采用基于任务的调度机制,结合动态负载均衡,以应对不规则工作负载及不同核函数速度差异(如更快的 TS 与更慢的 TT 核函数)。
  • 在单节点与多节点共享内存系统上,使用真实世界中的矩阵尺寸与形状,对算法进行实现与评估。

实验结果

研究问题

  • RQ1不同归约树结构(FlatTS、FlatTT、Greedy、Auto)如何影响分块双对角化算法的关键路径长度与性能表现?
  • RQ2在关键路径长度与可扩展性方面,R-BiDiag 相较于 BiDiag 的相对性能优势如何,尤其是在高瘦矩阵上的表现?
  • RQ3自适应归约树(Auto)是否能在多种矩阵形状与硬件配置下超越固定树策略?
  • RQ4与以往方法(如 FlatTS)相比,采用 Greedy 树的分块双对角化在理论关键路径复杂度上表现如何?
  • RQ5与现有 SVD 库(如 ScaLAPACK 和 Elemental)相比,新实现的分布式多核系统可扩展性达到何种程度?

主要发现

  • 对于 p×q 分块矩阵(p ≥ q),采用 Greedy 树的 R-BiDiag 实现了关键路径长度为 Θ(q log₂p),显著优于 FlatTS 与 FlatTT 的 Θ(pq) 复杂度。
  • 对于高瘦矩阵(p = Ω(q¹⁺ᵅ),0 ≤ α < 1),R-BiDiagGreedy 相较于 BiDiagGreedy 的渐近性能优势为 1/(1 + α/2) 倍,且当 α → 0 时该比值趋近于 1。
  • 在实际应用中,自适应 Auto 树优于所有固定树变体,在最多 25 个节点(600 核)范围内保持强可扩展性,而 FlatTS 在 10 个节点后即因并行度受限而饱和。
  • 在弱可扩展性测试中,针对 (80,000×2,000) 与 (100,000×10,000) 大小的矩阵,Auto 实现高达 10 TFlop/s 的性能,单节点性能达 400–475 GFlop/s,优于 ScaLAPACK 与 Elemental。
  • 基于 DPLASMA 的实现采用 R-BiDiag 与 Auto 树,在可扩展性方面优于 ScaLAPACK 与 Elemental,主要得益于高效的 HQR 基 QR 分解与双对角化阶段更少的通信开销。
  • 研究结果证实,R-BiDiag 不仅在高瘦矩阵上的关键路径长度上更高效,且在分布式环境中整体性能更优,尤其在结合自适应任务调度时表现突出。

更好的研究,从现在开始

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

无需绑定信用卡

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