Fast algorithms for placing large entries along the diagonal of a sparse matrix |
| |
Authors: | Vamsi Kundeti Sanguthevar Rajasekaran |
| |
Affiliation: | Department of Computer Science and Engineering, University of Connecticut, Storrs, CT 06269, USA |
| |
Abstract: | Solving a sparse system of linear equations Ax=b is one of the most fundamental operations inside any circuit simulator. The equations/rows in the matrix A are often rearranged/permuted before factorization and applying direct or iterative methods to obtain the solution. Permuting the rows of the matrix A so that the entries with large absolute values lie on the diagonal has several advantages like better numerical stability for direct methods (e.g., Gaussian elimination) and faster convergence for indirect methods (such as the Jacobi method). Duff (2009) [3] has formulated this as a weighted bipartite matching problem (the MC64 algorithm). In this paper we improve the performance of the MC64 algorithm with a new labeling technique which improves the asymptotic complexity of updating dual variables from O(|V|+|E|) to O(|V|), where |V| is the order of the matrix A and |E| is the number of non-zeros. Experimental results from using the new algorithm, when benchmarked with both industry benchmarks and UFL sparse matrix collection, are very promising. Our algorithm is more than 60 times faster (than Duff’s algorithm) for sparse matrices with at least a million non-zeros. |
| |
Keywords: | Sparse matrix algorithms Pre ordering sparse matrix Diagonally dominant sparse matrix Weighted matching algorithms Bipartite matching Combinatorial optimization |
本文献已被 ScienceDirect 等数据库收录! |