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.
Revised: October 30, 2012 |
Published: October 21, 2012
Citation
Catalyurek U.V., J.T. Feo, A.H. Gebremedhin, M. Halappanavar, and A. Pothen. 2012.Multithreaded Algorithms for Graph Coloring.Parallel Computing 38, no. 10-11:576-594.PNNL-SA-77886.doi:10.1016/j.parco.2012.07.001