Download presentation
Presentation is loading. Please wait.
Published byJanelle Line Modified over 10 years ago
1
Finding Strongly Connected Components and Topological Sort in Parallel using O(log² n) reachability queries Warren Schudy Brown University Work done while interning at Google Research Mountain View
2
A Scheduling Problem To-do List –Topological sort (TS) –Strongly connected components (SCC) –Reachability SCC application in scientific computing requiring parallelism [McLendon et al. 01]
3
Previous Results for TS, SCC and Reachability Assume sparse graph with n vertices using 1 ≤ p ≤ n 4/3 processors: Question: is reachability fundamentally easier to parallelize than SCC and TS? (In Transactions of Information Processing Society of Japan ’99 ’04, Akio, Masahiro and Ryozo claim runtime n/p for TS & SCC) Coppersmith and Winograd ‘87 T. Spencer ‘97Ullman & Yannakakis ‘91 Runtime (ignore logs) n 2.38… /pn/p 1/3 n/p 1/2 ProblemsAll Reachability
4
Answer: no (up to logs) Our main result: a reduction of SCC and TS to O(log 2 n) reachability queries Remainder of talk focuses on SCC problem This workCoppersmith et al.SpencerUllman et al. Runtimen/p 1/2 n 2.38 /pn/p 1/3 n/p 1/2 ProblemsTS and SCCAll Reachability
5
Desc(s) SCC(s) V \ Desc(s) A simple SCC algorithm Choose random vertex s V Determine SCC(s) and output it Determine the vertices Desc(s) reachable from s Recurse (in parallel) on: –Desc(s) \ SCC(s) –V \ Desc(s) s (Similar to [Coppersmith, Fleischer, Hendrickson and Pinar ’05])
6
High-runtime instance Desc(s) s
7
Algorithmic Idea If this algorithm divided the graph roughly in two, recursion depth would be log n So pick many source vertices instead of 1 (number chosen later) Desc( )
8
Make one pivot vertex s special, and output its SCC Outputting SCCs s Desc( ) Desc(s) Recurse on blue, green, yellow and unreached subgraphs SCC(s)
9
Our Multipivot Algorithm Permute the vertices randomly Determine the smallest s s.t. {1,2,…s} together reach at least half the edges (binary search) Output SCC(s) Recurse on: –V \ Desc(1…s) –(Desc(1…s-1) Desc(s)) \ SCC(s) –Desc(1…s-1) \ Desc(s) –Desc(s) \ (Desc(1…s- 1) SCC(s)) s= Desc(1…s-1) Desc(s) 1 2 3 4 SCC(s)
10
Runtime Analysis k2k2 May contain almost all the edges, but will contain only some of the transitive closure edges (due to random order) s= Desc(1…s-1) Desc(s) 1 2 3 4 Each contains less than half the edges by definition of s SCC(s) k
11
Key Lemma 9 Number of edges in transitive closure of Desc(s) \ (Desc(1…s-1) SCC(s)) is at most 3/4 that of the parent subgraph V Correction for proof of Lemma 10: "vertices strictly between g(v) and v" other than v after
12
Open question Are there better parallel algorithms for reachability? E.g. can reachability on a 3-regular digraph be computed in o(√n) time using n processors? Ullman & Yannakakis takes O~(√n) time.
13
Acknowledgements & Questions D. Sivakumar Claire Mathieu Maurice Herlihy Glencora Borradaile
14
**Extra slides**
15
Combining Reachability Queries on subgraphs Subgraph 2Subgraph 1 Sources Super-source
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.