Fast algorithms for placing large entries along the diagonal of a sparse matrix

  • Authors:
  • Vamsi Kundeti;Sanguthevar Rajasekaran

  • Affiliations:
  • -;-

  • Venue:
  • Journal of Computational and Applied Mathematics
  • Year:
  • 2010

Quantified Score

Hi-index 7.29

Visualization

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.