Parallel Cluster-BFS and Applications to Shortest Paths
summary
Parallel cluster-BFS implements simultaneous BFS from a cluster by combining bitwise parallelism with thread-level parallelism, with work O(d m (k/w + 1)) and span O(d log n). An optimized C++ implementation on a 96-core machine processes 640 sources per graph (clusters size 64, diameter 2) and yields up to >1000x speedups and a ~500x geomean speedup versus running single-source BFSes; applied to landmark distance oracles it cuts preprocessing time and usually lowers distortion for the same ~1KB-per-vertex index.
AI-written summary · about
chapters (9)
- 0:00Parallel cluster-BFS intro
- 1:25What is cluster-BFS
- 6:45Parallelizing with bitwise & threads
- 10:21Algorithm overview & optimizations
- 13:12Theoretical guarantees
- 16:07Approximate distance oracles
- 18:22Experimental results
- 21:14Scalability & performance
- 24:03Future work & summary
related talks
30mThree Goals in Parallel Graph Computations: High Performance, High Productivity, and Reduced Comm...
30mScalable Graph-Parallel Inference Algorithms and Systems
30mParallelization by Approximation
19mBeeping Shortest Paths via Hypergraph Bipartite Decomposition
10mGraph Based Pipeline Parallelism
20mPre-Select Static Caching and Neighborhood Ordering for BFS-like Algorithms on Disk-based Graph Engines
50mBig Data on Smallish Machines
53mMapReduce Algorithmics
