HP MLIB User's Guide Vol. 2 7th Ed.
736 HP MLIB LAPACK User’s Guide
Distributed SuperLU driver routines
column-compressed format (“Harwell-Boeing Format”). B, which is overwritten
by the solution X, is stored as a dense matrix in column-major order. A and B
are replicated across all processors.
It is very common to solve a sequence of related linear systems
A
(1)
X
(1)
=B
(1)
,A
(2)
X
(2)
=B
(2)
,...rather than just one. When A
(1)
and A
(2)
are similar
enough in sparsity pattern and/or numerical entries, it is possible to save some
of the work done when solving with A
(1)
to solve with A
(2)
. This can result in
significant savings. Here are the options, in increasing order of “reuse of prior
information”:
1. Factor from scratch. No previous information is used. If one were solving
just one linear system, or a sequence of unrelated linear systems, this is the
option to use.
2. Reuse column permutation. This is most useful when A
(2)
has the same
sparsity structure as A
(1)
, but not necessarily the same (or similar)
numerical entries.
3. Reuse row and column permutations, and data structures allocated for LU
factors. This is most useful when A
(2)
has the same sparsity structure and
similar numerical entries as A
(1)
. When the numerical entries are not
similar, one can still use this option, but at a higher risk of numerical
instability (output berr will report whether or not the solution was
computed stably, so one cannot get an unstable answer without warning).
4. Reuse row and column permutations, and LU factors. This is most useful
when A
(2)
=A
(1)
, but B
(2)
not equal to B
(1)
, i.e. when only the right-hand sides
differ.
For further details, see “The input argument: options” on page 745.
Distributed SuperLU driver routines
There are four driver routines to solve systems of linear equations. Two are for
double precision, and are named pdgssvx and pdgssvx_ABglobal, and the other
two are for double complex, and are named pzgssvx and pzgssvx_ABglobal.
These routines are recommended for general users, because correct usage of
these routines do not require thorough understanding of the underlying data
structures. Although the interfaces of these routines are simple, their rich
functionality can meet the requirements of most applications.