Publication | Closed Access
SPOOLES: An Object-Oriented Sparse Matrix Library.
116
Citations
9
References
1999
Year
Numerical AnalysisLinear SystemsSparse RepresentationEngineeringMatrix FactorizationAlgorithmic LibrarySparse MatrixNumerical ComputationMatrix EntriesComputer EngineeringParallel ProgrammingComputer ScienceMatrix MethodParallel ComputingComputational Geometry
1 Overview Solving sparse linear systems of equations is a common and important component of a multitude of scientific and engineering applications. The SPOOLES software package1 provides this functionality with a collection of software objects and methods. The package provides a choice of three sparse matrix orderings (minimum degree, nested dissection and multisection), supports pivoting for numerical stability (when required), can compute direct or drop tolerance factorizations, and the computations are based on BLAS3 numerical kernels to take advantage of high performance computing architectures. The factorizations and solves are supported in serial, multithreaded (using POSIX threads) and MPI environments. The first step to solving a linear system AX = B is to construct “objects” to hold the entries and structure of A, and the entries of X and B. SPOOLES provides a flexible set of methods to assemble a sparse matrix. The “input matrix” object allows a choice of coordinate systems (by rows, by columns, and other ways), flexible input (input by single entries, (partial) rows or columns, dense submatrices, or any combination), resizes itself as necessary, and assembles, sorts and permutes its entries. It is also a distributed object for MPI environments. Matrix entries can be created and assembled on different processors, and methods exist to assemble and redistribute the matrix entries as necessary. There are three methods to order a sparse matrix: minimum degree, generalized nested dissection and multisection. The latter two orderings depend on a domain/separator tree that is constructed using a graph partitioning method. Domain decomposition is used to find an initial separator, and a sequence of network flow problems are solved to smooth the separator. The qualities of our nested dissection and multisection orderings are comparable to other state of the art packages. Factorizations of square matrices have the form A = PLDUQ and A = PLDLP T , where P and Q are permutation matrices. Square systems of the form A + σB may also be factored and solved (as found in shift-and-invert eigensolvers), as well as full rank overdetermined linear systems, where a QR factorization is computed and the solution found by solving the semi-normal equations.
| Year | Citations | |
|---|---|---|
Page 1
Page 1