Linear System Analyzer Computational Components
The "meat" of the LSA is its linear system codes, which comprise
its "components". This should be distinguished from the LSA
subsystems, the reusable software infrastructure parts
that can be applied to form PSEs in other problem domains.
The general categories in which the linear system components
have been grouped are
- I/O components for getting systems into and solutions
out of the LSA
- Filter components for manipulating the systems with
re-orderings, scalings, or dropping of entries based on their
relative sizes
- Solver components for actually solving the systems
- Information components for providing some analysis
of the systems.
Components currently available are listed below.
Please note that the hyperlinks below are
to the original library source of the codes, which in most cases have been
modified to constitute stand-alone components.
- NewSystem (I/O) uses some local and some
Sparskit routines to read a system in a
Harwell-Boeing
or
Matrix Market
formatted file into the LSA. Later this will be extended to
accept input from a running process.
- ExtractVector (I/O) outputs a vector to a file or another
component. It is used to retrieve the solution vector, or some
auxiliary information such as permutation or scaling vectors.
- BasicInfo (Information) uses primarily
Sparskit routines to provide analysis
of the system for symmetry, density, diagonal dominance, etc.
It also creates a GIF image of the sparsity (nonzero) structure
of the coefficient matrix.
- Reorder (Filter) applies some standard re-orderings: reverse Cuthill-McKee,
nested dissection, and minimum degree. These are modifications
of Sparspak routines.
- Scale (Filter) applies row and/or column scaling, and equilibration.
- Squeeze (Filter) removes entries based on their relative absolute
value.
- Banded (Solver) is based on
Linpack
routines, and converts the
system to banded data structure and then solves the system.
- Dense (Solver) uses
LAPACK
routines to solve the system after
first converting it to a dense 2D array data structure.
-
SuperLU (Solver) is a sparse direct solver based on supernodal
methods, and is a code developed at UC Berkeley.
-
SPLIB (Solver) is a package of preconditioned iterative solvers
developed at Indiana University.
SPLIB includes thirteen iterative
methods and seven preconditioners.
These are not an exhaustive compendium of numerical
software available for large sparse linear systems, but they
span enough of the common operations to demonstrate the application
of the LSA.
Next page: the target audience
for the LSA.
bramley@cs.indiana.edu
Last updated: Tue Jan 26 12:29:15 1999