Skip to main content
QUICK REVIEW

[论文解读] A distributed-memory package for dense Hierarchically Semi-Separable matrix computations using randomization

François-Henry Rouet, Xiaoye Sherry Li|arXiv (Cornell University)|Mar 18, 2015
Matrix Theory and Algorithms参考文献 32被引用 5
一句话总结

本文提出 STRUMPACK,一个可扩展的、基于分布式内存的密集层级半分离(HSS)矩阵计算库,采用随机采样技术。该库通过自适应随机采样压缩非对角块,实现大规模线性系统的快速、高精度求解以及矩阵-向量乘法,相较于密集 ScaLAPACK 实现最高可提升 6 倍性能,并在真实问题上实现 8,000 个核心的强可扩展性。

ABSTRACT

We present a distributed-memory library for computations with dense structured matrices. A matrix is considered structured if its off-diagonal blocks can be approximated by a rank-deficient matrix with low numerical rank. Here, we use Hierarchically Semi-Separable representations (HSS). Such matrices appear in many applications, e.g., finite element methods, boundary element methods, etc. Exploiting this structure allows for fast solution of linear systems and/or fast computation of matrix-vector products, which are the two main building blocks of matrix computations. The compression algorithm that we use, that computes the HSS form of an input dense matrix, relies on randomized sampling with a novel adaptive sampling mechanism. We discuss the parallelization of this algorithm and also present the parallelization of structured matrix-vector product, structured factorization and solution routines. The efficiency of the approach is demonstrated on large problems from different academic and industrial applications, on up to 8,000 cores. This work is part of a more global effort, the STRUMPACK (STRUctured Matrices PACKage) software package for computations with sparse and dense structured matrices. Hence, although useful on their own right, the routines also represent a step in the direction of a distributed-memory sparse solver.

研究动机与目标

  • 解决高性能计算中结构化矩阵计算缺乏可扩展、通用的并行软件的问题。
  • 实现对具有低秩非对角块的密集矩阵的高效、黑箱式计算,此类矩阵在有限元法和边界元法中普遍存在。
  • 开发一个支持任意数量 MPI 进程和非平衡层次树的分布式内存 HSS 压缩与分解包。
  • 将随机采样与自适应采样相结合,实现无需先验知识的鲁棒、自动秩估计。
  • 在大规模学术与工业问题上,通过高达 8,000 个核心的实测,展示高性能与强可扩展性。

提出的方法

  • 使用层级半分离(HSS)表示法,通过用低秩结构近似非对角块来压缩密集矩阵。
  • 应用随机采样并结合自适应采样机制,在无需预先知晓矩阵秩的情况下估计低秩结构。
  • 实现一种任务到进程的映射算法,支持非均匀的层次划分和非平衡的 HSS 树,以实现负载均衡。
  • 通过 MPI 实现分布式矩阵分发、本地采样以及 HSS 树的递归遍历,实现 HSS 压缩的并行化。
  • 实现并行 HSS 矩阵-向量乘法以及类似 ULV 的分解,用于利用 HSS 结构求解线性系统。
  • 利用 BLAS 和 ScaLAPACK 原 primitive 进行通信与计算,重点优化树遍历中的通信开销。

实验结果

研究问题

  • RQ1随机采样能否有效适配于具有自适应秩估计的分布式内存 HSS 压缩?
  • RQ2基于 HSS 的求解器在高达 8,000 个核心的大规模问题上性能如何扩展?
  • RQ3与传统密集求解器相比,分布式环境下 HSS 树遍历的通信与计算开销如何?
  • RQ4STRUMPACK 与 ScaLAPACK 及先前的 HSS 代码(如 Hsolver)相比,在性能与可扩展性方面表现如何?
  • RQ5HSS 框架在多样化应用中作为黑箱预条件子或直接求解器,其适用程度如何?

主要发现

  • 在大规模问题上,STRUMPACK 相较于密集 ScaLAPACK 内核最高可实现 6 倍性能提升,尤其在 HSS 秩适中时效果显著。
  • 该库可强可扩展至 8,000 个 MPI 进程,表现出高效的负载均衡与通信管理能力。
  • 在来自边界元法问题的 130,000×130,000 矩阵(最大秩为 5,500)上,STRUMPACK 在 4,096 个核心上耗时 132.9 秒。
  • 当 HSS 秩较大时,HSS 树遍历的通信开销占主导地位,导致在高核心数下与 ScaLAPACK 的性能差距缩小。
  • 压缩阶段有 50% 的时间消耗在插值分解(ID)计算上,而当前受限于 BLAS2 性能。
  • 自适应采样机制实现了黑箱可用性,用户无需预先指定秩,显著提升了实际可用性。

更好的研究,从现在开始

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

无需绑定信用卡

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