Engineering and Scientific Subroutine Library for AIX Version 3 Release 3: 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 ]