Solving Large, Irregular Graph Problems Using Adaptive Work-Stealing

Solving large, irregular graph problems efficiently is challenging. Current software systems and commodity multiprocessors do not support fine-grained, irregular parallelism well. We present XWS, the X10 work stealing framework, an open-source runtime for the parallel programming language X10 and a library to be used directly by application writers. XWS extends the Cilk work-stealing framework with several features necessary to efficiently implement graph algorithms, viz., support for improperly nested procedures, global termination detection, and phased computation. We also present a strategy to adaptively control the granularity of parallel tasks in the work-stealing scheme, depending on the instantaneous size of the work queue. We compare the performance of the XWS implementations of spanning tree algorithms with that of the hand-written C and Cilk implementations using various graph inputs. We show that XWS programs (written in Java) scale and exhibit comparable or better performance.

[1]  John Greiner,et al.  A comparison of parallel algorithms for connected components , 1994, SPAA '94.

[2]  Tsan-sheng Hsu,et al.  Parallel implementation of algorithms for finding connected components in graphs , 1994, Parallel Algorithms.

[3]  Philip N. Klein,et al.  An efficient parallel algorithm for planarity , 1986, 27th Annual Symposium on Foundations of Computer Science (sfcs 1986).

[4]  Christos Faloutsos,et al.  R-MAT: A Recursive Model for Graph Mining , 2004, SDM.

[5]  David A. Bader,et al.  A fast, parallel spanning tree algorithm for symmetric multiprocessors , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[6]  John Greiner,et al.  AD-A 270 551 A Comparison of Data-Parallel Algorithms for Connected Components , 1994 .

[7]  Nir Shavit,et al.  Non-blocking steal-half work queues , 2002, PODC '02.

[8]  Matteo Frigo,et al.  The implementation of the Cilk-5 multithreaded language , 1998, PLDI.

[9]  David A. Bader,et al.  A fast, parallel spanning tree algorithm for symmetric multiprocessors , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[10]  Bradley C. Kuszmaul,et al.  Cilk: an efficient multithreaded runtime system , 1995, PPOPP '95.