Fast algorithms for placing large entries along the diagonal of a sparse matrix
作者:
Highlights:
•
摘要
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.
论文关键词:Sparse matrix algorithms,Pre ordering sparse matrix,Diagonally dominant sparse matrix,Weighted matching algorithms,Bipartite matching,Combinatorial optimization
论文评审过程:Received 30 May 2009, Available online 9 July 2010.
论文官网地址:https://doi.org/10.1016/j.cam.2010.07.002