193
v1v2 (latest)

Parallel Cluster-BFS and Applications to Shortest Paths

Main:11 Pages
7 Figures
Bibliography:3 Pages
7 Tables
Appendix:5 Pages
Abstract

Breadth-first Search (BFS) is one of the most important graph processing subroutines, especially for computing the unweighted distance. Many applications may require running BFS from multiple sources. Sequentially, when running BFS on a cluster of nearby vertices, a known optimization is using bit-parallelism. Given a subset of vertices with size kk and the distance between any pair of them is no more than dd, BFS can be applied to all of them in total work O(dm(k/w+1))O(dm(k/w+1)), where ww is the length of a word in bits and mm is the number of edges. We will refer to this approach as cluster-BFS (C-BFS). Such an approach has been studied and shown effective both in theory and in practice in the sequential setting. However, it remains unknown how this can be combined with thread-level parallelism. In this paper, we focus on designing efficient parallel C-BFS based on BFS to answer unweighted distance queries. Our solution combines the strengths of bit-level parallelism and thread-level parallelism, and achieves significant speedup over the plain sequential solution. We also apply our algorithm to real-world applications. In particular, we identified another application (landmark-labeling for the approximate distance oracle) that can take advantage of parallel C-BFS. Under the same memory budget, our new solution improves accuracy and/or time on all the 18 tested graphs.

View on arXiv
Comments on this paper