An Object-Oriented Algorithmic Laboratory for Ordering Sparse Matrices

We focus on two known NP-hard problems that have applications in sparse matrix computations: the envelope/wavefront reduction problem and the fill reduction problem. Envelope/wavefront reducing orderings have a wide range of applications including profile and frontal solvers, incomplete factorization preconditioning, graph reordering for cache performance, gene sequencing, and spatial databases. Fill reducing orderings are generally limited to—but an inextricable part of—sparse matrix factorization. Our major contribution to this field is the design of new and improved heuristics for these NP-hard problems and their efficient implementation in a robust, cross-platform, object-oriented software package. In this body of research, we (1) examine current ordering algorithms, analyze their asymptotic complexity, and characterize their behavior in model problems, (2) introduce new and improved algorithms that address deficiencies found in previous heuristics, (3) implement an object-oriented library of these algorithms in a robust, modular fashion without significant loss of efficiency, and (4) extend our algorithms and software to address both generalized and constrained problems. We stress that the major contribution is the algorithms and the implementation; the whole being greater than the sum of its parts. The initial motivation for implementing our algorithms in object-oriented software was to manage the inherent complexity. During our research came the realization that the object-oriented implementation enabled new possibilities for augmented algorithms that would not have been as natural to generalize from a procedural implementation. Some extensions are constructed from a family of related algorithmic components, thereby creating a poly-algorithm that can adapt its strategy to the properties of the specific problem instance dynamically. Other algorithms are tailored for special constraints by aggregating algorithmic components and having them collaboratively generate the global ordering. Our software laboratory, “Spindle,” implements state-of-the-art ordering algorithms for sparse matrices and graphs. We have used it to examine and augment the behavior of existing algorithms and test new ones. Its 40,000+ lines of C++ code includes a base library test drivers, sample applications, and interfaces to C, C++, Matlab, and PETSc. Spindle is freely available and can be built on a variety of UNIX platforms as well as WindowsNT.

[1]  Ian P. King,et al.  An automatic reordering scheme for simultaneous equations derived from network systems , 1970 .

[2]  Stanley C. Eisenstat,et al.  Yale sparse matrix package I: The symmetric codes , 1982 .

[3]  I. Duff,et al.  THE USE OF PROFILE REDUCTION ALGORITHMS WITH A FRONTAL CODE , 1989 .

[4]  Ümit V. Çatalyürek,et al.  Decomposing Irregularly Sparse Matrices for Parallel Matrix-Vector Multiplication , 1996, IRREGULAR.

[5]  L. Vu Quoc,et al.  Automatic node resequencing with constraints , 1984 .

[6]  Shashi Shekhar,et al.  Spatial Databases - Accomplishments and Research Needs , 1999, IEEE Trans. Knowl. Data Eng..

[7]  Bruce Hendrickson,et al.  An Improved Spectral Graph Partitioning Algorithm for Mapping Parallel Computations , 1995, SIAM J. Sci. Comput..

[8]  John R. Gilbert,et al.  Sparse Matrices in MATLAB: Design and Implementation , 1992, SIAM J. Matrix Anal. Appl..

[9]  A. George,et al.  On the application of the minimum degree algorithm to finite element systems , 1978 .

[10]  Norman E. Gibbs,et al.  Algorithm 509: A Hybrid Profile Reduction Algorithm [F1] , 1976, TOMS.

[11]  Tamara G. Kolda,et al.  Partitioning Rectangular and Structurally Unsymmetric Sparse Matrices for Parallel Processing , 1999, SIAM J. Sci. Comput..

[12]  Bojan Mohar,et al.  Laplace eigenvalues and bandwidth-type invariants of graphs , 1993, J. Graph Theory.

[13]  I. Duff,et al.  The effect of ordering on preconditioned conjugate gradients , 1989 .

[14]  Gary L. Miller,et al.  Automatic Mesh Partitioning , 1992 .

[15]  R. Tarjan,et al.  A Separator Theorem for Planar Graphs , 1977 .

[16]  Richard F. Barrett,et al.  Matrix Market: a web resource for test matrix collections , 1996, Quality of Numerical Software.

[17]  E. Cuthill,et al.  Reducing the bandwidth of sparse symmetric matrices , 1969, ACM '69.

[18]  S. Sloan An algorithm for profile and wavefront reduction of sparse matrices , 1986 .

[19]  Bruce Hendrickson,et al.  Graph Partitioning and Parallel Solvers: Has the Emperor No Clother? (Extended Abstract) , 1998, IRREGULAR.

[20]  Bojan Mohar,et al.  Optimal linear labelings and eigenvalues of graphs , 1992, Discret. Appl. Math..

[21]  Michael J. Vilot,et al.  Standard template library , 1996 .

[22]  Timothy A. Davis,et al.  A combined unifrontal/multifrontal method for unsymmetric sparse matrices , 1999, TOMS.

[23]  Cleve Ashcraft,et al.  Compressed Graphs and the Minimum Degree Algorithm , 1995, SIAM J. Sci. Comput..

[24]  Bruce Hendrickson,et al.  Effective Sparse Matrix Ordering: Just Around the BEND , 1997, PPSC.

[25]  M. Fiedler Algebraic connectivity of graphs , 1973 .

[26]  Alex Pothen,et al.  PARTITIONING SPARSE MATRICES WITH EIGENVECTORS OF GRAPHS* , 1990 .

[27]  A. H. Sherman,et al.  Comparative Analysis of the Cuthill–McKee and the Reverse Cuthill–McKee Ordering Algorithms for Sparse Matrices , 1976 .

[28]  M. Fiedler A property of eigenvectors of nonnegative symmetric matrices and its application to graph theory , 1975 .

[29]  Alan George,et al.  An Implementation of a Pseudoperipheral Node Finder , 1979, TOMS.

[30]  Bruce Hendrickson,et al.  The Chaco user`s guide. Version 1.0 , 1993 .

[31]  Scott Meyers,et al.  More Effective C++: 35 New Ways to Improve Your Programs and Designs , 1995 .

[32]  Padma Raghavan,et al.  Performance of Greedy Ordering Heuristics for Sparse Cholesky Factorization , 1999, SIAM J. Matrix Anal. Appl..

[33]  Joseph W. H. Liu,et al.  Modification of the minimum-degree algorithm by multiple elimination , 1985, TOMS.

[34]  Xiaoye Sherry Li,et al.  Sparse Gaussian Elimination on High Performance Computers , 1996 .

[35]  Alexander A. Stepanov,et al.  C++ Standard Template Library , 2000 .

[36]  Patrick R. Amestoy,et al.  An Approximate Minimum Degree Ordering Algorithm , 1996, SIAM J. Matrix Anal. Appl..

[37]  John Stuart Lakos,et al.  Large-Scale C++ Software Design , 1996 .

[38]  P. Berman,et al.  On the performance of the minimum degree ordering for Gaussian elimination , 1990 .

[39]  Pinar Heggernes,et al.  A practical algorithm for making filled graphs minimal , 2001, Theor. Comput. Sci..

[40]  S. Eisenstat,et al.  Node Selection Strategies for Bottom-Up Sparse Matrix Ordering , 1998, SIAM J. Matrix Anal. Appl..

[41]  John G. Lewis Implementation of the Gibbs-Poole-Stockmeyer and Gibbs-King Algorithms , 1982, TOMS.

[42]  C. Bornstein Parallelizing and de-parallelizing elimination orders , 1998 .

[43]  Florin Dobrian,et al.  Object-Oriented Design for Sparse Direct Solvers , 1998, ISCOPE.

[44]  Cleve Ashcraft,et al.  SPOOLES: An Object-Oriented Sparse Matrix Library , 1999, PPSC.

[45]  William G. Poole,et al.  An algorithm for reducing the bandwidth and profile of a sparse matrix , 1976 .

[46]  H. D. Simon,et al.  A spectral algorithm for envelope reduction of sparse matrices , 1993, Supercomputing '93. Proceedings.

[47]  John Reid,et al.  Ordering symmetric sparse matrices for small profile and wavefront , 1999 .

[48]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[49]  I. Duff,et al.  Direct Methods for Sparse Matrices , 1987 .

[50]  M. Yannakakis Computing the Minimum Fill-in is NP^Complete , 1981 .

[51]  A. Pothen,et al.  Two improved algorithms for envelope and wavefront reduction , 1997 .

[52]  Timothy A. Davis,et al.  An Unsymmetric-pattern Multifrontal Method for Sparse Lu Factorization , 1993 .

[53]  Alan George,et al.  A Fast Implementation of the Minimum Degree Algorithm Using Quotient Graphs , 1980, TOMS.

[54]  C. Jordan Sur les assemblages de lignes. , 1869 .

[55]  Philip N. Klein,et al.  Cutting down on Fill Using Nested Dissection: Provably Good Elimination Orderings , 1993 .