DOE OSTI · 1054034
Multithreaded Algorithms for Graph Coloring
Abstract
Graph algorithms are challenging to parallelize when high performance and scalability are primary goals. Low concurrency, poor data locality, irregular access pattern, and high data access to computation ratio are among the chief reasons for the challenge. The performance implication of these features is exasperated on distributed memory machines. More success is being achieved on shared-memory, multi-core architectures supporting multithreading. We consider a prototypical graph problem, coloring, and show how a greedy algorithm for solving it can be e*ectively parallelized on multithreaded architectures. We present in particular two di*erent parallel algorithms. The first relies on speculation and iteration, and is suitable for any shared-memory, multithreaded system. The second uses data ow principles and is targeted at the massively multithreaded Cray XMT system. We benchmark the algorithms on three di*erent platforms and demonstrate scalable runtime performance. In terms of quality of solution, both algorithms use nearly the same number of colors as the serial algorithm.
Keep this discovery
Explore connections, maps & timelines
Catalyurek, Umit V, Feo, John T, Gebremedhin, Assefaw H, Halappanavar, Mahantesh, Pothen, Alex. 2012-10-21. Multithreaded Algorithms for Graph Coloring. https://doi.org/10.1016/j.parco.2012.07.001
Cite the original work for its findings. Save a collection to share your selection of sources.