Parallel k-Core Decomposition on Multicore Platforms

k-core decomposition is a social network analytic that can be applied to centrality analysis, visualization, and community detection. There is a simple and well-known linear time sequential algorithm to perform k-core decomposition, and for this reason, k-core decomposition is widely used as a network analytic. In this work, we present a new shared-memory parallel algorithm called PKC for k-core decomposition on multicore platforms. This approach improves on the state-of-the-art implementations for k-core decomposition algorithms by reducing synchronization overhead and creating a smaller graph to process high-degree vertices. We show that PKC consistently outperforms implementations of other methods on a 32-core multicore server and on a collection of large sparse graphs. We achieve a 2.81× speedup (geometric mean of speedups for 17 large graphs) over our implementation of the ParK k-core decomposition algorithm.

[1]  Frank Schweitzer,et al.  A k-shell decomposition method for weighted networks , 2012, ArXiv.

[2]  Ryan A. Rossi,et al.  Parallel Maximum Clique Algorithms with Applications to Network Analysis , 2013, SIAM J. Sci. Comput..

[3]  Guy E. Blelloch,et al.  GraphChi: Large-Scale Graph Computation on Just a PC , 2012, OSDI.

[4]  Tamara G. Kolda,et al.  Accelerating Community Detection by Using K-core Subgraphs , 2014, ArXiv.

[5]  Alex Thomo,et al.  K-Core Decomposition of Large Networks on a Single PC , 2015, Proc. VLDB Endow..

[6]  Sebastiano Vigna,et al.  The webgraph framework I: compression techniques , 2004, WWW '04.

[7]  Timothy A. Davis,et al.  The university of Florida sparse matrix collection , 2011, TOMS.

[8]  James Cheng,et al.  Efficient core decomposition in massive networks , 2011, 2011 IEEE 27th International Conference on Data Engineering.

[9]  Jure Leskovec,et al.  {SNAP Datasets}: {Stanford} Large Network Dataset Collection , 2014 .

[10]  C. Bron,et al.  Algorithm 457: finding all cliques of an undirected graph , 1973 .

[11]  Stephen B. Seidman,et al.  Network structure and minimum degree , 1983 .

[12]  Alessandro Vespignani,et al.  Large scale networks fingerprinting and visualization using the k-core decomposition , 2005, NIPS.

[13]  Dimitrios M. Thilikos,et al.  D-cores: measuring collaboration of directed graphs based on degeneracy , 2011, Knowledge and Information Systems.

[14]  Francesco De Pellegrini,et al.  Distributed k-Core Decomposition , 2013 .

[15]  Leland L. Beck,et al.  Smallest-last ordering and clustering and graph coloring algorithms , 1983, JACM.

[16]  Vladimir Batagelj,et al.  An O(m) Algorithm for Cores Decomposition of Networks , 2003, ArXiv.

[17]  Chen Lu,et al.  Local k-core clustering for gene networks , 2013, 2013 IEEE International Conference on Bioinformatics and Biomedicine.

[18]  Desh Ranjan,et al.  ParK: An efficient algorithm for k-core decomposition on multicore processors , 2014, 2014 IEEE International Conference on Big Data (Big Data).

[19]  Alessandro Vespignani,et al.  k-core decomposition: a tool for the analysis of large scale Internet graphs , 2005, ArXiv.

[20]  Guy E. Blelloch,et al.  Ligra: a lightweight graph processing framework for shared memory , 2013, PPoPP '13.