CuSP: A Customizable Streaming Edge Partitioner for Distributed Graph Analytics

Graph analytics systems must analyze graphs with billions of vertices and edges which require several terabytes of storage. Distributed-memory clusters are often used for analyzing such large graphs since the main memory of a single machine is usually restricted to a few hundreds of gigabytes. This requires partitioning the graph among the machines in the cluster. Existing graph analytics systems usually come with a built-in partitioner that incorporates a particular partitioning policy, but the best partitioning policy is dependent on the algorithm, input graph, and platform. Therefore, built-in partitioners are not sufficiently flexible. Stand-alone graph partitioners are available, but they too implement only a small number of partitioning policies. This paper presents CuSP, a fast streaming edge partitioning framework which permits users to specify the desired partitioning policy at a high level of abstraction and generates high-quality graph partitions fast. For example, it can partition wdc12, the largest publicly available web-crawl graph, with 4 billion vertices and 129 billion edges, in under 2 minutes for clusters with 128 machines. Our experiments show that it can produce quality partitions 6× faster on average than the state-of-the-art stand-alone partitioner in the literature while supporting a wider range of partitioning policies.

[1]  Alex Brooks,et al.  A Lightweight Communication Runtime for Distributed Graph Analytics , 2018, 2018 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[2]  Christos Faloutsos,et al.  Kronecker Graphs: An Approach to Modeling Networks , 2008, J. Mach. Learn. Res..

[3]  Claudio Martella,et al.  Spinner: Scalable Graph Partitioning in the Cloud , 2014, 2017 IEEE 33rd International Conference on Data Engineering (ICDE).

[4]  Daniel J. Abadi,et al.  LEOPARD: Lightweight Edge-Oriented Partitioning and Replication for Dynamic Graphs , 2016, Proc. VLDB Endow..

[5]  Charalampos E. Tsourakakis,et al.  FENNEL: streaming graph partitioning for massive scale graphs , 2014, WSDM.

[6]  Sivasankaran Rajamanickam,et al.  Partitioning Trillion-Edge Graphs in Minutes , 2016, 2017 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[7]  Bora Uçar,et al.  On Two-Dimensional Sparse Matrix Partitioning: Models, Methods, and a Recipe , 2010, SIAM J. Sci. Comput..

[8]  Marco Rosa,et al.  Layered label propagation: a multiresolution coordinate-free ordering for compressing social networks , 2010, WWW.

[9]  Keshav Pingali,et al.  A lightweight infrastructure for graph analytics , 2013, SOSP.

[10]  Aart J. C. Bik,et al.  Pregel: a system for large-scale graph processing , 2010, SIGMOD Conference.

[11]  Sivasankaran Rajamanickam,et al.  PuLP: Scalable multi-objective multi-constraint partitioning for small-world networks , 2014, 2014 IEEE International Conference on Big Data (Big Data).

[12]  Keshav Pingali,et al.  A Study of Partitioning Policies for Graph Analytics on Large-scale Distributed Platforms , 2018, Proc. VLDB Endow..

[13]  Joseph Gonzalez,et al.  PowerGraph: Distributed Graph-Parallel Computation on Natural Graphs , 2012, OSDI.

[14]  Lars Backstrom,et al.  Balanced label propagation for partitioning massive graphs , 2013, WSDM.

[15]  George Karypis,et al.  Introduction to Parallel Computing , 1994 .

[16]  Zhihua Zhang,et al.  Distributed Power-law Graph Computing: Theoretical and Empirical Analysis , 2014, NIPS.

[17]  Dhabaleswar K. Panda,et al.  Stampede 2: The Evolution of an XSEDE Supercomputer , 2017, PEARC.

[18]  Fabio Checconi,et al.  Scalable Community Detection with the Louvain Algorithm , 2015, 2015 IEEE International Parallel and Distributed Processing Symposium.

[19]  Fabio Petroni,et al.  HDRF: Stream-Based Partitioning for Power-Law Graphs , 2015, CIKM.

[20]  Alex Brooks,et al.  Gluon: a communication-optimizing substrate for distributed heterogeneous graph analytics , 2018, PLDI.

[21]  Sebastiano Vigna,et al.  BUbiNG: massive crawling for the masses , 2014, WWW.

[22]  Tiziano De Matteis,et al.  Optimizing message-passing on multicore architectures using hardware multi-threading , 2014, 2014 22nd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.

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

[24]  Lu Wang,et al.  How to partition a billion-node graph , 2014, 2014 IEEE 30th International Conference on Data Engineering.

[25]  Sivasankaran Rajamanickam,et al.  Scalable matrix computations on large scale-free graphs using 2D graph partitioning , 2013, 2013 SC - International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[26]  Binyu Zang,et al.  PowerLyra: Differentiated Graph Computation and Partitioning on Skewed Graphs , 2019, TOPC.

[27]  Kurt Rothermel,et al.  ADWISE: Adaptive Window-Based Streaming Edge Partitioning for High-Speed Graph Processing , 2017, 2018 IEEE 38th International Conference on Distributed Computing Systems (ICDCS).

[28]  Vipin Kumar,et al.  A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs , 1998, SIAM J. Sci. Comput..

[29]  Gabriel Kliot,et al.  Streaming graph partitioning for large distributed graphs , 2012, KDD.

[30]  Wenguang Chen,et al.  Gemini: A Computation-Centric Distributed Graph Processing System , 2016, OSDI.