Guide and Reference
This section provides some key points about using the sparse matrix direct
solver subroutines.
- To solve a sparse system of equations by a direct method, you must use
both the factorization and solve subroutines. The factorization subroutine
should be followed in your program by the corresponding solve subroutine; that
is, the output from the factorization subroutine should be used as input to
the solve subroutine.
- To solve a system of equations with one or more right-hand sides, follow
the call to the factorization subroutine with one or more calls to the solve
subroutine.
- The amount of storage required for the arrays depends on the sparsity
pattern of the matrix. The requirement that
lna > 2nz on entry to DGSF does not guarantee a
successful run of the program. Some programs may be terminated because of the
large number of fill-ins generated upon factorization. Fill-ins generated in a
program depend on the structure of each matrix. If a large number of fill-ins
is anticipated when factoring a matrix, the value of lna should be
large enough to accommodate your problem.
- To make the subroutine more efficient, an input matrix comprised of all
nonzero elements is preferable. See the syntax description of each subroutine
for details.
- DGSF optionally checks the validity of the indices and pointers of the
input matrix. Use of this option is suggested; however, it may affect
performance. For details, see the syntax description for DGSF.
- In DGSS, if there are multiple sparse right-hand sides to be solved, you
should take advantage of the sparsity by selecting a proper value for
jopt (such as jopt = 10 or 11). If there is only one
right-hand side to be solved, it is suggested that you do not exploit the
sparsity.
- In DGSF, the value you enter for the lower bound of all elements in the
matrix (RPARM(1)) affects the accuracy of the result. Specifying a
larger number allows you to gain some performance; however, you may lose some
accuracy in the solution.
- In DGSF, the threshold pivot tolerance (RPARM(2)) is used to
select pivots. A value that is close to 0.0 approaches no pivoting. A value
close to 1.0 approaches partial pivoting. A value of 0.1 is considered to be a
good compromise between numerical stability and sparsity.
- If the ESSL subroutine performs storage compressions, you receive an
attention message. When this occurs, the performance of this subroutine is
affected. You can improve the performance by increasing the value specified
for lna.
- There are ESSL-specific rules that apply to the results of computations on
the workstation processors using the ANSI/IEEE standards. For details, see "What Data Type Standards Are Used by ESSL, and What Exceptions Should You Know About?".
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]