Direct methods for solving large sparse linear systems of equations
are popular because of their generality and robustness. As the
requirements of computational scientists for more accurate models
increases, so inevitably do the sizes of the systems that must be
solved and the amount of memory needed by direct solvers.
For many users, the option of using a computer with a sufficiently
large memory is either not available or is too expensive. Using a
preconditioned iterative solver may be possible but for the "tough"
systems that arise from many practical applications, the difficulties
involved in finding and computing a good preconditioner can make
iterative methods infeasible. An alternative is to use a direct solver
that is able to hold its data structures on disk, that is, an
out-of-core solver.
In this talk, we will explain the multifrontal algorithm and discuss
the design and development of a new HSL sparse symmetric out-of-core
solver that uses it. Both the system matrix A and its factors are
stored externally. For the indefinite case, numerical pivoting using
1x1 and 2x2 pivots is incorporated. To minimise storage for the system
data, a reverse communication interface is used. Input of A is either
by rows or by elements.
An important feature of the package is that all input and output to
disk is performed through a set of Fortran subroutines that manage a
virtual memory system so that actual i/o occurs only when really
necessary. Also important is to design in-core data structures that
avoid expensive searches. All these aspects will be discussed.
At the time of writing, we are tuning the code for the
positive-definite case and have performance figures for real
problems. By the time of the seminar, we hope to have developed the
indefinite case, too.