Greed Is Good: Parallel Algorithms for Bipartite-Graph Partial Coloring on Multicore Architectures

In parallel computing, a valid graph coloring yields a lock-free processing of the colored tasks, data points, etc., without expensive synchronization mechanisms. However, coloring is not free and the overhead can be significant. In particular, for the bipartite-graph partial coloring (BGPC) and distance-2 graph coloring (D2GC) problems, which have various use-cases within the scientific computing and numerical optimization domains, the coloring overhead can be in the order of minutes with a single thread for many real-life graphs.In this work, we propose parallel algorithms for bipartite-graph partial coloring on shared-memory architectures. Compared to the existing shared-memory BGPC algorithms, the proposed ones employ greedier and more optimistic techniques that yield a better parallel coloring performance. In particular, on 16 cores, the proposed algorithms are more than 4x faster than their counterparts in the ColPack library which is, to the best of our knowledge, the only publicly-available coloring library for multicore architectures. In addition to BGPC, the proposed techniques are employed to devise parallel distance-2 graph coloring algorithms and similar performance improvements have been observed. Finally, we propose two costless balancing heuristics for BGPC that can reduce the skewness and imbalance on the cardinality of color sets (almost) for free. The heuristics can also be used for the D2GC problem and in general, they will probably yield a better color-based parallelization performance especially on many-core architectures.

[1]  Kivanc Dincer,et al.  A Comparison of Parallel Graph Coloring Algorithms , 1995 .

[2]  Mark T. Jones,et al.  Parallel Heuristics for Improved, Balanced Graph Colorings , 1996, J. Parallel Distributed Comput..

[3]  Ümit V. Çatalyürek,et al.  Graph coloring algorithms for multi-core and massively multithreaded architectures , 2012, Parallel Comput..

[4]  Alex Pothen,et al.  Parallel Distance-k Coloring Algorithms for Numerical Optimization , 2002, Euro-Par.

[5]  David Zuckerman Linear Degree Extractors and the Inapproximability of Max Clique and Chromatic Number , 2007, Theory Comput..

[6]  Hao Lu,et al.  Balanced Coloring for Parallel Computing Applications , 2015, 2015 IEEE International Parallel and Distributed Processing Symposium.

[7]  Alex Pothen,et al.  New Multithreaded Ordering and Coloring Algorithms for Multicore Architectures , 2011, Euro-Par.

[8]  Michael Luby,et al.  A simple parallel algorithm for the maximal independent set problem , 1985, STOC '85.

[9]  Ümit V. Çatalyürek,et al.  A Scalable Parallel Graph Coloring Algorithm for Distributed Memory Computers , 2005, Euro-Par.

[10]  J. J. Moré,et al.  Estimation of sparse jacobian matrices and graph coloring problems , 1983 .

[11]  Mark T. Jones,et al.  A Parallel Graph Coloring Heuristic , 1993, SIAM J. Sci. Comput..

[12]  Alex Pothen,et al.  ColPack: Software for graph coloring and related problems in scientific computing , 2013, TOMS.

[13]  Ümit V. Çatalyürek,et al.  A Parallel Distance-2 Graph Coloring Algorithm for Distributed Memory Computers , 2005, HPCC.

[14]  Ümit V. Çatalyürek,et al.  Improving graph coloring on distributed-memory parallel computers , 2011, 2011 18th International Conference on High Performance Computing.

[15]  Torbjørn Johnsen Tessem Improving Parallel Sparse Matrix-vector Multiplication , 2013 .

[16]  Ümit V. Çatalyürek,et al.  A framework for scalable greedy coloring on distributed-memory parallel computers , 2008, J. Parallel Distributed Comput..

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

[18]  Mehmet Deveci,et al.  Parallel Graph Coloring for Manycore Architectures , 2016, 2016 IEEE International Parallel and Distributed Processing Symposium (IPDPS).

[19]  D. J. A. Welsh,et al.  An upper bound for the chromatic number of a graph and its application to timetabling problems , 1967, Comput. J..

[20]  Ümit V. Çatalyürek,et al.  On Distributed Graph Coloring with Iterative Recoloring , 2014, ArXiv.

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

[22]  Ümit V. Çatalyürek,et al.  Distributed-Memory Parallel Algorithms for Distance-2 Coloring and Related Problems in Derivative Computation , 2010, SIAM J. Sci. Comput..

[23]  Alex Pothen,et al.  What Color Is Your Jacobian? Graph Coloring for Computing Derivatives , 2005, SIAM Rev..

[24]  Daniel Brélaz,et al.  New methods to color the vertices of a graph , 1979, CACM.

[25]  Ümit V. Çatalyürek,et al.  Scalable Hybrid Implementation of Graph Coloring Using MPI and OpenMP , 2012, 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum.

[26]  P. Lax Proof of a conjecture of P. Erdös on the derivative of a polynomial , 1944 .