A Hybrid Graph Coloring Algorithm for GPUs

12/03/2019
by   Shanthanu S Rai, et al.
0

Graph algorithms mainly belong to two categories, topology-driven and data-driven. Data-driven approach maintains a worklist of active nodes, the nodes on which work has to be done. Topology-driven approach sweeps over the entire graph to find active nodes. Hybridization is an optimization technique where in each iteration, the computation is done in a topology-driven or data-driven manner based on worklist size. In hybrid implementations, there is a need to switch between topology-driven and data-driven approaches. Typically, a worklist is maintained just in the data-driven part of the algorithm and discarded in the topology-driven part. We propose a variant of hybridization, wherein a worklist is maintained throughout all iterations of the algorithm and still show it to be faster than both, topology-driven and data-driven approaches. We consider a graph coloring algorithm called IPGC (Iterative Parallel Graph Coloring) and implement a hybrid version for the same in a graph domain specific language called IrGL. We observe a mean speedup of 2.13x over a data-driven implementation of IPGC on a suite of 10 large graphs on a NVIDIA GPU.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset