STRUMPACK
STRUMPACK - STRUctured Matrix PACKage - is a software
library providing linear algebra routines and linear
system solvers for sparse and for dense rank-structured
linear systems. Many large dense matrices are rank
structured, meaning they exhibit some kind of low-rank
property, for instance in hierarchically defined
sub-blocks. In sparse direct solvers based on LU
factorization, the LU factors can often also be
approximated well using rank-structured matrix
compression, leading to robust preconditioners. The
sparse solver in STRUMPACK can also be used as an exact
direct solver, in which case it functions similarly as
for
instance SuperLU
or Superlu_Dist. The
STRUMPACK sparse direct solver delivers good performance
and distributed memory scalability and provides
excellent CUDA support.
Currently, STRUMPACK
has support for the Hierarchically Semi-Separable (HSS),
Block Low Rank (BLR), Hierachically Off-Diagonal Low
Rank (HODLR), Butterfly and Hierarchically Off-Diagonal
Butterfly (HODBF) rank-structured matrix formats. Such
matrices appear in many applications, e.g., the Boundary
Element Method for discretization of integral equations,
structured matrices like Toeplitz and Cauchy, kernel and
covariance matrices etc. In the LU factorization of
sparse linear systems arising from the discretization of
partial differential equations, the fill-in in the
triangular factors often has low-rank structure. Hence,
the sparse linear solve algorithms in STRUMPACK exploit
the different dense rank-structured matrix formats to
compress the fill-in. This leads to purely algebraic,
fast and scalable (both with problem size and compute
cores) approximate direct solvers or
preconditioners. These preconditioners are mostly aimed
at large sparse linear systems which result from the
discretization of a partial differential equation, but
are not limited to any particular type of
problem. STRUMPACK also provides preconditioned GMRES
and BiCGStab iterative solvers.
Apart from
rank-structured compression, the STRUMPACK sparse solver
also support compression of the factors using
the ZFP
library, a general purpose compression algorithm tuned
for floating point data. This can be used with a
specified precision, or with lossless
compression.
The HODLR and Butterfly
functionality in STRUMPACK is implemented through
interfaces to
the ButterflyPACK
package.
The software is released under
a BSD-style
license.
GitHub
The current development version of STRUMPACK is available on GitHub. You can always contact us if you have questions, bug-reports, requests, etc.
Developers