Loading [MathJax]/extensions/MathMenu.js
Parallel Graph Coloring for Manycore Architectures | IEEE Conference Publication | IEEE Xplore

Parallel Graph Coloring for Manycore Architectures


Abstract:

Graph algorithms are challenging to parallelize on manycore architectures due to complex data dependencies and irregular memory access. We consider the well studied probl...Show More

Abstract:

Graph algorithms are challenging to parallelize on manycore architectures due to complex data dependencies and irregular memory access. We consider the well studied problem of coloring the vertices of a graph. In many applications it is important to compute a coloring with few colors in near-lineartime. In parallel, the optimistic (speculative) coloring method by Gebremedhin and Manne is the preferred approach but it needs to be modified for manycore architectures. We discuss a range of implementation issues for this vertex-based optimistic approach. We also propose a novel edge-based optimistic approach that has more parallelism and is better suited to GPUs. We study the performance empirically on two architectures(Xeon Phi and GPU) and across many data sets (from finite element problems to social networks). Our implementation uses the Kokkos library, so it is portable across platforms. We show that on GPUs, we significantly reduce the number of colors (geometric mean 4X, but up to 48X) as compared to the widely used cuSPARSE library. In addition, our edge-based algorithm is 1.5 times faster on average than cuSPARSE, where it hasspeedups up to 139X on a circuit problem. We also show the effect of the coloring on a conjugate gradient solver using multi-colored Symmetric Gauss-Seidel method as preconditioner, the higher coloring quality found by the proposed methods reduces the overall solve time up to 33% compared to cuSPARSE.
Date of Conference: 23-27 May 2016
Date Added to IEEE Xplore: 21 July 2016
ISBN Information:
Print ISSN: 1530-2075
Conference Location: Chicago, IL, USA

I. Introduction

Graph problems arise in many applications, such as data analysis and computational science and engineering. Graph algorithms serve as useful tool by themselves for solving real problems of interest and as good benchmarks for kernel performance in emerging architectures. They are characterized by irregular data access, dynamic data structures, and non-traditional parallelization patterns with synchronization bottlenecks dictated by the structure of the graph or by the algorithm. In this paper, we consider an archetypal graph problem: graph coloring. Graph coloring is often used to find independent tasks that can be executed simultaneously. As minimizing the number of colors is NP-hard, we consider fast graph coloring heuristics that run in reasonable amount of time. Parallel graph coloring presents an interesting challenge for algorithm developers both in terms of the performance of the graph kernel itself and in terms of the impact of the coloring on real problems. While the former relies on new algorithms and implementations for improving the performance of the graph algorithm, the latter relies on the quality of the parallel graph algorithm, typically the number of colors for graph coloring. In this paper, we are concerned with both of these aspects of parallel graph coloring.

Contact IEEE to Subscribe

References

References is not available for this document.