34
20

Parallel Batch-Dynamic kk-Core Decomposition

Abstract

Maintaining a kk-core decomposition quickly in a dynamic graph is an important problem in many applications, including social network analytics, graph visualization, centrality measure computations, and community detection algorithms. The main challenge for designing efficient kk-core decomposition algorithms is that a single change to the graph can cause the decomposition to change significantly. We present the first parallel batch-dynamic algorithm for maintaining an approximate kk-core decomposition that is efficient in both theory and practice. Given an initial graph with mm edges, and a batch of BB updates, our algorithm maintains a (2+δ)(2 + \delta)-approximation of the coreness values for all vertices (for any constant δ>0\delta > 0) in O(Blog2m)O(B\log^2 m) amortized work and O(log2mloglogm)O(\log^2 m \log\log m) depth (parallel time) with high probability. Our algorithm also maintains a low out-degree orientation of the graph in the same bounds. We implemented and experimentally evaluated our algorithm on a 30-core machine with two-way hyper-threading on 1111 graphs of varying densities and sizes. Compared to the state-of-the-art algorithms, our algorithm achieves up to a 114.52x speedup against the best multicore implementation and up to a 497.63x speedup against the best sequential algorithm, obtaining results for graphs that are orders-of-magnitude larger than those used in previous studies. In addition, we present the first approximate static kk-core algorithm with linear work and polylogarithmic depth. We show that on a 30-core machine with two-way hyper-threading, our implementation achieves up to a 3.9x speedup in the static case over the previous state-of-the-art parallel algorithm.

View on arXiv
Comments on this paper