Books
-
Computer Solution of Sparse Positive Definite Systems,
A. George, J. Liu, and E. Ng.
Second edition, to appear.
(The main text for the first half of the course. Draft chapters
will be handed out in class. There is also a first edition, published
by Prentice-Hall in 1981, which is somewhat out of date.)
-
Direct Methods for Sparse Matrices,
I. S. Duff, A. M. Erisman and J. K. Reid.
Oxford University Press, 1986.
(This has a lot of good material on nonsymmetric methods,
though it is somewhat out of date.)
-
Graph Theory and Sparse Matrix Computation,
A. George, J. R. Gilbert, and J. W. H. Liu.
Springer-Verlag, 1993.
(This is a broad collection of papers.)
-
Matlab Primer,
K. Sigmon and T. A. Davis.
Sixth edition, CRC Press, 2002.
(A good introduction to Matlab, concise but thorough.)
-
Numerical Linear Algebra,
L. N. Trefethen and D. Bau.
SIAM, 1997.
(This is the best book I know for the numerical aspects of
linear systems, eigenvalues, and their algorithms.
Nothing on sparse direct methods,
but every sparse matrix person should read it anyway.)
-
Matrix Computations, third edition,
G. H. Golub and C. Van Loan.
Johns Hopkins University Press, 1996.
(A very careful and thorough reference on numerical linear algebra.)
Papers:
Papers marked with a [number] are in the course reader.
-
[1]
J. R. Gilbert, C. Moler, and R. Schreiber.
Sparse
matrices in Matlab: Design and implementation.
SIAM J. Matrix Analysis and Applications, 13:333-356, 1992.
(Surveys a lot of sparse matrix algorithms and describes how Matlab does them.)
-
J. R. Gilbert.
Predicting structure in sparse matrix computations.
SIAM J. Matrix Analysis and Applications, 15:62-79, 1994.
(How do you predict the nonzero structure of the result
of a sparse matrix operation without actually performing it?)
-
J. R. Gilbert and R. E. Tarjan.
The analysis of a nested dissection algorithm.
Numerische Mathematik, 50:377-404, 1987.
(Fill and flops bounds for the version of nested dissection we
looked at in class, for arbitrary planar graphs.)
-
P. R. Amestoy, T. A. Davis, and I. S. Duff.
An approximate minimum degree ordering algorithm.
SIAM J. Matrix Analysis and Applications, 17:886-905, 1996.
(AMD is generally the best implementation of minimum degree,
usually for running time and often for ordering quality.)
-
T. A. Davis, J. R. Gilbert, S. I. Larimore, and E. G. Ng.
A column approximate minimum degree ordering algorithm.
ACM Transactions on Mathematical Software, 30:353-376, 2004.
(A version of AMD for ordering columns of a nonsymmetric matrix;
it orders the column intersection graph without forming it explicitly.)
-
A. Agrawal, P. Klein, and R. Ravi.
Cutting down on fill using nested dissection:
Provably good elimination orderings.
In Graph Theory and Sparse Matrix Computation (above), pp. 31-55.
(Shows that provably good approximation algorithms for graph
separators translate into provably good approximation algorithms
for minimum-fill ordering.
These are the best theoretical approximation bounds known,
although they are only within polylog of optimal.)
-
P. Berman and G. Schnitger.
On the performance of the minimum degree ordering for Gaussian elimination.
SIAM J. Matrix Analysis and Applications, 11:83-88, 1990.
(An example showing that minimum degree does *not* guarantee orderings
within polylog of optimal, even for the 2-D model problem.)
-
[2]
J. R. Gilbert, E. Ng, and B. Peyton.
An efficient algorithm to compute row and column counts for
sparse Cholesky factorization.
SIAM J. Matrix Analysis and Applications, 15:1075-1091, 1994.
(The details of the almost-linear-time row and column count algorithm.)
-
[3]
J. R. Gilbert and T. Peierls.
Sparse partial pivoting in time proportional to arithmetic operations.
SIAM J. Scientific and Statistical Computing, 9:862-874, 1988.
(Algorithms for sparse LU factorization with partial pivoting
in which the time to manipulate data structures is asymptotically
no more than the number of nonzero flops.
Based on solving sparse triangular systems with sparse right-hand sides
by depth-first search and topological ordering.)
-
[4]
J. W. Demmel, S. C. Eisenstat, J. R. Gilbert, X. S. Li, and J. W. H. Liu.
A supernodal approach to sparse partial pivoting.
SIAM J. Matrix Analysis and Applications, 20:720-755, 1999.
(SuperLU, a code that adds several things to the O(flops)-time
LU factorization algorithm,
including symmetric pruning for faster data structures and
supernodes for good cache reuse.)
-
T. A. Davis.
A column pre-ordering strategy for the unsymmetric multifrontal method.
Submitted for publication.
Tech report, 2003.
(UMFPACK, an LU factorization code that uses unsymmetric multifrontal
techniques to get good cache reuse, as well as threshold pivoting and
interesting data structures and ordering ideas.)
-
J. W. Demmel, J. R. Gilbert, and X. S. Li.
An asynchronous parallel supernodal algorithm for sparse Gaussian elimination.
SIAM J. Matrix Analysis and Applications, 20:915-952, 1999.
(A shared-memory, multithreaded version of SuperLU.)
-
[5]
X. S. Li and J. W. Demmel.
SuperLU_DIST: A scalable distributed-memory sparse direct
solver for unsymmetric linear systems.
Submitted for publication.
Tech report, 2002.
(An MPI-based distributed-memory LU factorization code that uses
static pivoting, beginning with a permutation to place large elements
on the main diagonal.)
-
P. R. Amestoy, I. S. Duff, J.-Y. L'Excellent, and J. Koster.
A fully asynchronous multifrontal solver using distributed
dynamic scheduling.
SIAM J. on Matrix Analysis and Applications, 23:15-41, 2001.
(An MPI-based multifrontal LU factorization code.)
-
T. F. Coleman, A. Edenbrandt, and J. R. Gilbert.
Predicting fill for sparse orthogonal factorization.
J. ACM, 33:517-532, 1986.
(A "graph game" for sparse QR factorization, plus lower
bounds and strong Hall matrices.)
-
[6]
A. Pothen and C.-J. Fan.
Computing the block triangular form of a sparse matrix.
ACM Transactions on Mathematical Software 16:303-324, 1990.
(Good survey and detailed algorithm description for permutation
to block triangular form and for its generalization,
the Dulmage-Mendelsohn decomposition,
using bipartite matching and strongly connected components.)
-
[7]
I. S. Duff and J. Koster.
On algorithms for permuting large entries to the diagonal of a sparse matrix.
SIAM J. Matrix Analysis and Applications, 22:973-996, 2001.
(Weighted bipartite matching and related scalings.
This is used as a preprocessor for both SuperLU-dist and some iterative
methods.)
Software
-
LDL, an example due to Tim Davis of a mexFunction
that interfaces a C code to Matlab.
-
The mesh
partitioning toolbox,
which includes utilities for generating grid graphs,
analyzing elimination orders, plotting graphs and
elimination trees, and nested dissection ordering.
Includes a Matlab interface to the Metis partitioning
and ordering software.