DFEP: Distributed Funding-Based Edge Partitioning

As graphs become bigger, the need to efficiently partition them becomes more pressing. Most graph partitioning algorithms subdivide the vertex set into partitions of similar size, trying to keep the number of cut edges as small as possible. An alternative approach divides the edge set, with the goal of obtaining more balanced partitions in presence of high-degree nodes, such as hubs in real world networks, that can be split between distinct partitions. We introduce dfep, a distributed edge partitioning algorithm based on the metaphor of currency distribution. Each partition starts from a random edge and expands independently by spending currency to buy neighboring edges. After each iteration, smaller partitions receive an higher amount of currency to help them recover lost ground and reach a similar size to the other partitions. Simulation experiments show that dfep is efficient and obtains consistently balanced partitions. Implementations on both Hadoop and Spark show the scalability of our approach.

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

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

[3]  Konstantin Andreev,et al.  Balanced Graph Partitioning , 2004, SPAA '04.

[4]  John R. Gilbert,et al.  A parallel graph partitioning algorithm for a message-passing multiprocessor , 1987, International Journal of Parallel Programming.

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

[6]  Brian W. Kernighan,et al.  An efficient heuristic procedure for partitioning graphs , 1970, Bell Syst. Tech. J..

[7]  Amir H. Payberah,et al.  JA-BE-JA: A Distributed Algorithm for Balanced Graph Partitioning , 2013, 2013 IEEE 7th International Conference on Self-Adaptive and Self-Organizing Systems.

[8]  John R. Gilbert,et al.  A parallel graph partitioning algorithm for a message-passing multiprocessor , 1987, International journal of parallel programming.