New Multithreaded Ordering and Coloring Algorithms for Multicore Architectures

  • Md. Mostofa Ali Patwary
  • Assefaw H. Gebremedhin
  • Alex Pothen
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6853)


We present new multithreaded vertex ordering and distance-k graph coloring algorithms that are well-suited for multicore platforms. The vertex ordering techniques rely on various notions of “degree”, are known to be effective in reducing the number of colors used by a greedy coloring algorithm, and are generic enough to be applicable to contexts other than coloring. We employ approximate degree computation in the ordering algorithms and speculation and iteration in the coloring algorithms as our primary tools for breaking sequentiality and achieving effective parallelization. The algorithms have been implemented using OpenMP, and experiments conducted on Intel Nehalem and other multi-core machines using various types of graphs attest that the algorithms provide scalable runtime performance. The number of colors the algorithms use is often close to optimal. The techniques used for computing the ordering and coloring in parallel are applicable to other problems where there is an inherent ordering to the computations that needs to be relaxed for increasing concurrency.


Coloring Algorithm Multicore Machine Multicore Platform Thread Count Multiple Vertex 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bozdağ, D., Catalyurek, U.V., Gebremedhin, A.H., Manne, F., Boman, E.G., Ozgunner, F.: Distributed-memory parallel algorithms for distance-2 coloring and related problems in derivative computation. SIAM J. Sci. Comput. 32(4), 2418–2446 (2010)CrossRefMathSciNetzbMATHGoogle Scholar
  2. 2.
    Bozdağ, D., Gebremedhin, A.H., Manne, F., Boman, E.G., Catalyurek, U.V.: A framework for scalable greedy coloring on distributed-memory parallel computers. Journal of Parallel and Distributed Computing 68(4), 515–535 (2008)CrossRefzbMATHGoogle Scholar
  3. 3.
    Catalyurek, U., Feo, J., Gebremedhin, A.H., Halappanavar, M., Pothen, A.: Multithreaded algorithms for graph coloring. Submitted for Journal Publication (2011)Google Scholar
  4. 4.
    Chakrabarti, D., Faloutsos, C.: Graph mining: Laws, generators, and algorithms. ACM Comput. Surv. 38(1), 2 (2006)CrossRefGoogle Scholar
  5. 5.
    Gebremedhin, A.H., Manne, F., Pothen, A.: What color is your Jacobian? Graph coloring for computing derivatives. SIAM Review 47(4), 629–705 (2005)CrossRefMathSciNetzbMATHGoogle Scholar
  6. 6.
    Gebremedhin, A.H., Nguyen, D., Patwary, M.M.A., Pothen, A.: ColPack: Graph coloring software for derivative computation and beyond. Submitted for Journal Publication (2010)Google Scholar
  7. 7.
    Jones, M.T., Plassmann, P.E.: Scalable iterative solution of sparse linear systems. Parallel Computing 20(5), 753–773 (1994)CrossRefMathSciNetzbMATHGoogle Scholar
  8. 8.
    Saad, Y.: ILUM: A multi-elimination ILU preconditioner for general sparse matrices. SIAM J. Sci. Comput. 17, 830–847 (1996)CrossRefMathSciNetzbMATHGoogle Scholar
  9. 9.
    Tarjan, R.E., Yannakakis, M.: Simple linear-time algorithms to test chordality of graphs, test acyclicity of hypergraphs, and selectively reduce acyclic hypergraphs. SIAM J. Comput. 13(3), 566–579 (1984)CrossRefMathSciNetzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Md. Mostofa Ali Patwary
    • 1
  • Assefaw H. Gebremedhin
    • 2
  • Alex Pothen
    • 2
  1. 1.University of BergenNorway
  2. 2.Purdue UniversityWest LafayetteUSA

Personalised recommendations