High Performance Parallel Graph Coloring on GPGPUs
Citations Over TimeTop 20% of 2016 papers
Abstract
Graph coloring has been broadly used to discover concurrency in parallel computing, where vertices with the same color represent subtasks that can be processed simultaneously. To speedup graph coloring for large scale datasets, parallel algorithms have been proposed to leverage the massive hardware resources on modern multicore CPUs or GPGPUs. Existing GPU implementations either have limited performance or yield unsatisfactory coloring quality (too many colors assigned). We present a high performance parallel graph coloring implementation on GPGPUs with good coloring quality. Our approach employs the speculative greedy algorithm which usually yields better quality than the method based on maximal independent set. In order to achieve high performance on GPGPUs, we adapt the algorithm to improve work efficiency and reduce overhead, and incorporate several optimization techniques which reduce memory access latency and atomic operation overhead. Our method is evaluated with both synthetic and real-world graphs on the NVIDIA GPU. Experimental results show that our proposed implementations outperform the sequential implementation (3.0× speedup) and the existing GPU implementation from the NVIDIA CUSPARSE library (1.5× speedup), while yielding good coloring quality close to the sequential implementation.
Related Papers
- → Parallel connected-component labeling algorithm for GPGPU applications(2010)14 cited
- → Speeding up model building for ECGA on CUDA platform(2013)2 cited
- Parallel Programming For High-Performance Computing on CUDA(2009)
- Introductory on GPGPU Programming Technique(2010)
- → CUDA-Parttree: A Multiple Sequence Alignment Parallel Strategy in GPU(2019)