A Fast and Scalable Graph Coloring Algorithm for Multi-core and Many-core Architectures
Georgios Rokos, Gerard Gorman, Paul H J Kelly

TL;DR
This paper introduces an improved, scalable graph coloring algorithm optimized for multi-core and many-core architectures, reducing conflicts and synchronization to enhance performance in irregular parallel applications.
Contribution
An enhanced graph coloring algorithm that runs more efficiently with fewer conflicts and better scalability on modern multi-core and many-core systems.
Findings
Up to 1.5x faster performance on high-degree graphs
Reduces thread synchronization and conflicts
Maintains near-optimal number of colors
Abstract
Irregular computations on unstructured data are an important class of problems for parallel programming. Graph coloring is often an important preprocessing step, e.g. as a way to perform dependency analysis for safe parallel execution. The total run time of a coloring algorithm adds to the overall parallel overhead of the application whereas the number of colors used determines the amount of exposed parallelism. A fast and scalable coloring algorithm using as few colors as possible is vital for the overall parallel performance and scalability of many irregular applications that depend upon runtime dependency analysis. Catalyurek et al. have proposed a graph coloring algorithm which relies on speculative, local assignment of colors. In this paper we present an improved version which runs even more optimistically with less thread synchronization and reduced number of conflicts compared…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Cloud Computing and Resource Management · Distributed and Parallel Computing Systems
