skip to main content
research-article

Improving the Speed and Quality of Parallel Graph Coloring

Published: 18 August 2022 Publication History

Abstract

Graph coloring assigns a color to each vertex of a graph such that no two adjacent vertices get the same color. It is a key building block in many applications. In practice, solutions that require fewer distinct colors and that can be computed faster are typically preferred. Various coloring heuristics exist that provide different quality versus speed tradeoffs. The highest-quality heuristics tend to be slow. To improve performance, several parallel implementations have been proposed. This paper describes two improvements of the widely used LDF heuristic. First, we present a “shortcutting” approach to increase the parallelism by non-speculatively breaking data dependencies. Second, we present “color reduction” techniques to boost the solution of LDF. On 18 graphs from various domains, the shortcutting approach yields 2.5 times more parallelism in the mean, and the color-reduction techniques improve the result quality by up to 20%. Our deterministic CUDA implementation running on a Titan V is 2.9 times faster in the mean and uses as few or fewer colors as the best GPU codes from the literature.

References

[1]
Ghadeer Alabandi, Evan Powers, and Martin Burtscher. 2020. Increasing the parallelism of graph coloring via shortcutting. Proceedings of the 2020 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (February 2020). 262–275.
[2]
David L. Applegate, Robert E. Bixby, Vašek Chvátal, and William J. Cook. 2011. The Traveling Salesman Problem. Princeton University Press, 2011.
[3]
Maciej Besta, Armon Carigiet, Kacper Janda, Zur Vonarburg-Shmaria, Lukas Gianinazzi, and Torsten Hoefler. 2020. High-performance parallel graph coloring with strong guarantees on work, depth, and quality. In SC20: International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE (2020), 1–17.
[5]
Ümit V. Çatalyürek, John Feo, Assefaw H. Gebremedhin, Mahantesh Halappanavar, and Alex Pothen. 2012. Graph coloring algorithms for multi-core and massively multithreaded architectures. Parallel Computing 38, 10-11 (2012), 576–594.
[6]
Chen and Li. https://github.com/chenxuhao/csrcolor, last accessed on 5/6/2021.
[7]
Xuhao Chen, Pingfan Li, Jianbin Fang, Tao Tang, Zhiying Wang, and Canqun Yang. 2017. Efficient and high-quality sparse graph coloring on GPUs. Concurrency and Computation: Practice and Experience 29, 10 (2017), e4064.
[8]
Jonathan Cohen and Patrice Castonguay. 2012. Efficient graph matching and coloring on the GPU. In GPU Technology Conference (2012), 1–10.
[9]
Thomas F. Coleman and Arun Verma. 1998. The efficient computation of sparse Jacobian matrices using automatic differentiation. SIAM Journal on Scientific Computing 19, 4 (1998), 1210–1233.
[10]
Thomas F. Coleman and Jorge J. Moré. 1984. Estimation of sparse Hessian matrices and graph coloring problems. Mathematical Programming 28, 3 (1984), 243–270.
[11]
ColPack. 2022. Combinatorial scientific computing and petascale simulations. https://github.com/CSCsw/ColPack, last accessed on 02/07/2022.
[12]
Joseph Culberson. 1992. Iterated greedy graph coloring and the difficulty landscape. (1992).
[13]
Cusparse Library. 2014. NVIDIA Corporation, Santa Clara, California. 2014.
[14]
S. Dalton and N. Bell. 2021. CUSP: A C++ templated sparse matrix library. http://cusplibrary.github.io, last accessed on 5/6/2021.
[15]
Mehmet Deveci, Erik G. Boman, Karen D. Devine, and Sivasankaran Rajamanickam. 2016. Parallel graph coloring for manycore architectures. In 2016 IEEE International Parallel and Distributed Processing Symposium (IPDPS). IEEE (2016), 892–901.
[16]
DIMACS. 2021. Center for discrete mathematics and theoretical computer science. http://www.dis.uniroma1.it/challenge9/download.shtml, last accessed on 5/6/2021.
[17]
ECL-GC. 2021. Texas State University. https://cs.txstate.edu/∼burtscher/research/ECL-GC/, last accessed on 5/6/2021.
[18]
Galois. 2021. ISS - The University of Texas at Austin. https://iss.oden.utexas.edu/?p=projects/galois, last accessed on 5/6/2021.
[19]
Michael R. Garey and David S. Johnson. 2002. Computers and Intractability. W. H. Freeman and Company, New York 29, (2002), 1–99.
[20]
Assefaw H. Gebremedhin, Duc Nguyen, Mostofa Ali Patwary, and Alex Pothen. 2013. ColPack: Graph coloring software for derivative computation and beyond. ACM Transactions on Mathematical Software 40, 1, (2013), 30.
[21]
Assefaw Hadish Gebremedhin and Fredrik Manne. 2000. Scalable parallel graph coloring algorithms. Concurrency: Practice and Experience 12, 12 (2000), 1131–1146.
[22]
Grappolo. 2021. The Grappolo graph toolkit. https://github.com/luhowardmark/GrappoloTK, last accessed on 5/6/2021.
[23]
Andre Vincent Pascal Grosset, Peihong Zhu, Shusen Liu, Suresh Venkatasubramanian, and Mary Hall. 2011. Evaluating graph coloring on GPUs. ACM SIGPLAN Notices 46, 8 (2011), 297–298.
[24]
Kshitij Gupta, Jeff A. Stuart, and John D. Owens. 2012. A study of persistent threads style GPU programming for GPGPU workloads. IEEE, 2012.
[25]
William Hasenplaugh, Tim Kaler, Tao B. Schardl, and Charles E. Leiserson. 2014. Ordering heuristics for parallel graph coloring. In 26th ACM Symposium on Parallelism in Algorithms and Architectures. ACM (2014), 166–177.
[26]
Karla L. Hoffman, Manfred Padberg, and Giovanni Rinaldi. 2013. Traveling salesman problem. Encyclopedia of Operations Research and Management Science 1 (2013), 1573–1578.
[27]
G. Huang and Weerakorn Ongsakul. 1994. An efficient task allocation algorithm and its use to parallelize irregular Gauss-Seidel type algorithms. In Proceedings of 8th International Parallel Processing Symposium. IEEE (1994), 497–501.
[28]
Jayadharini Jaiganesh and Martin Burtscher. 2018. A high-performance connected components implementation for GPUs. In Proceedings of the 27th International Symposium on High-Performance Parallel and Distributed Computing (2018), 92–104.
[29]
Mark T. Jones and Paul E. Plassmann. 1993. A parallel graph coloring heuristic. SIAM Journal on Scientific Computing 14, 3 (1993), 654–669.
[30]
Kokkos-Kernels. https://github.com/kokkos/kokkos-kernels, last accessed on 5/6/2021.
[31]
Michael Luby. 1986. A simple parallel algorithm for the maximal independent set problem. SIAM Journal on Computing 15, 4 (1986), 1036–1053.
[32]
Norbert Martínez-Bazan, M. Ángel Águila-Lorente, Victor Muntés-Mulero, David Dominguez-Sal, Sergio Gómez-Villamor, and Josep-L. Larriba-Pey. 2012. Efficient graph management based on bitmap indices. In 16th International Database Engineering & Applications Symposium. ACM (2012), 110–119.
[33]
David W. Matula, George Marble, and Joel D. Isaacson. 1972. Graph coloring algorithms. In Graph Theory and Computing. Academic Press (1972), 109–122.
[34]
Duane Merrill, Michael Garland, and Andrew Grimshaw. 2012. Scalable GPU graph traversal. In ACM SIGPLAN Notices. ACM 47, 8 (2012), 117–128.
[35]
Rupesh Nasre, Martin Burtscher, and Keshav Pingali. 2013. Data-driven versus topology-driven irregular computations on GPUs. In 2013 IEEE International Symposium on Parallel and Distributed Processing IEEE, (2013). 463–474.
[36]
Maxim Naumov, Patrice Castonguay, and Jonathan Cohen. 2015. Parallel Graph Coloring with Applications to the Incomplete-LU Factorization on the GPU. Nvidia White Paper, 2015.
[37]
Christian Nilsson. 2003. Heuristics for the traveling salesman problem. Linkoping University 38 (2003), 00085–9.
[38]
Muhammad Osama, Minh Truong, Carl Yang, Aydın Buluç, and John Owens. 2019. Graph coloring on the GPU. In 2019 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW). IEEE, (2019), 231–240.
[39]
Jeremy Siek, Andrew Lumsdaine, and Lie-Quan Lee. 2002. The Boost Graph Library: User Guide and Reference Manual. Addison-Wesley, 2002.
[40]
Nandini Singhal, Sathya Peri, and Subrahmanyam Kalyanasundaram. 2017. Practical multi-threaded graph coloring algorithms for shared memory architecture. In 18th International Conference on Distributed Computing and Networking. ACM, 2017, 44.
[41]
SNAP, Stanford Large Network Dataset Collection. https://snap.stanford.edu/data/, last accessed on 5/6/2021.
[42]
SuiteSparse Matrix Collection. https://sparse.tamu.edu/, last accessed on 5/6/2021.
[43]
Henry S. Warren. 2013. Hacker's Delight. Pearson Education, 2013.
[44]
Dominic J. A. Welsh and Martin B. Powell. 1967. An upper bound for the chromatic number of a graph and its application to timetabling problems. The Computer Journal 10, 1 (1967), 85–86.

Index Terms

  1. Improving the Speed and Quality of Parallel Graph Coloring

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Parallel Computing
    ACM Transactions on Parallel Computing  Volume 9, Issue 3
    September 2022
    112 pages
    ISSN:2329-4949
    EISSN:2329-4957
    DOI:10.1145/3551658
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 18 August 2022
    Online AM: 11 July 2022
    Accepted: 01 June 2022
    Revised: 01 April 2022
    Received: 01 May 2021
    Published in TOPC Volume 9, Issue 3

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Graph coloring
    2. shortcutting
    3. color reduction
    4. parallelism
    5. GPU computing

    Qualifiers

    • Research-article
    • Refereed

    Funding Sources

    • National Science Foundation
    • Department of Energy, National Nuclear Security Administration
    • NVIDIA Corporation

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 469
      Total Downloads
    • Downloads (Last 12 months)130
    • Downloads (Last 6 weeks)3
    Reflects downloads up to 18 Jan 2025

    Other Metrics

    Citations

    View Options

    Login options

    Full Access

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Full Text

    View this article in Full Text.

    Full Text

    HTML Format

    View this article in HTML Format.

    HTML Format

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media