Nearly-Linear Work Parallel SDD Solvers, Low-Diameter Decomposition, and Low-Stretch Subgraphs - Blelloch, Guy E.; Gupta, Anupam; Koutis, Ioannis; Miller, Gary L.; Peng, Richard; Tangwongsan, Kanat (Theory of computing systems, 2014)
We present the design and analysis of a nearly-linear work parallel algorithm for solving symmetric diagonally dominant (SDD) linear systems. On input an SDD n -by- n matrix A with m nonzero entries and a vector b , our algorithm computes a vector such that in work and depth for any θ >0, where A + denotes the Moore-Penrose pseudoinverse of A . The algorithm relies on a parallel algorithm for generating low-stretch spanning trees or spanning subgraphs. To this end, we first develop a parallel decomposition algorithm that in O ( m log O (1) n ) work and polylogarithmic depth, partitions a graph with n nodes and m edges into components with polylogarithmic diameter such that only a small fraction of the original edges are between the components. This can be used to generate low-stretch spanning trees with average stretch O ( n α ) in O ( m log O (1) n ) work and O ( n α ) depth for any α >0. Alternatively, it can be used to generate spanning subgraphs with polylogarithmic average stretch in O ( m log O (1) n ) work and polylogarithmic depth. We apply this subgraph construction to derive a parallel linear solver. By using this solver in known applications, our results imply improved parallel randomized algorithms for several problems, including single-source shortest paths, maximum flow, minimum-cost flow, and approximate maximum flow.