A Distributed Memory Package for Dense Hierarchically Semi Separable Matrix Computations Using Randomization
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 (HSS) representations. Such matrices appear in many applications, for example, finite element methods, boundary element methods, and so on. 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 STRUctured Matrices PACKage (STRUMPACK) 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.
ACM Trans. Math. Softw.