Lifting sequential graph algorithms for distributed-memory parallel computation

作者: Douglas Gregor , Andrew Lumsdaine

DOI: 10.1145/1094811.1094844

关键词:

摘要: This paper describes the process used to extend Boost Graph Library (BGL) for parallel operation with distributed memory. The BGL consists of a rich set generic graph algorithms and supporting data structures, but it was not originally designed parallelism in mind. In this paper, we revisit abstractions comprising context distributed-memory parallelism, lifting away implicit requirements sequential execution single shared address space. We illustrate our approach by describing as applied one core BGL, breadth-first search. result is algorithm that unchanged from algorithm, requiring only introduction external (distributed) structures execution. More importantly, implementation retains its interface semantics, such other can be built upon it, just are layered case. By characterizing these extensions well extension process, develop general principles patterns using (and reusing) generic, object-oriented software libraries. demonstrate resulting implementations both efficient scalable performance results several algorithms.

参考文章(29)
Ulrich Meyer, Peter Sanders, $\Delta$-Stepping: A Parallel Single Source Shortest Path Algorithm Untitled Event. pp. 393- 404 ,(1998)
Calvin Lin, Lawrence Snyder, ZPL: An Array Sublanguage languages and compilers for parallel computing. pp. 96- 114 ,(1993) , 10.1007/3-540-57659-2_6
Meng Lee, Alexander Stepanov, The Standard Template Library ,(1998)
A. Crauser, K. Mehlhorn, U. Meyer, P. Sanders, A Parallelization of Dijkstra's Shortest Path Algorithm mathematical foundations of computer science. pp. 722- 731 ,(1998) , 10.1007/BFB0055823
Guy E. Blelloch, NESL: A Nested Data-Parallel Language (Version 2.6) Carnegie Mellon University. ,(1993)
Steve Goddard, Jan F. Prins, Subodh Kumar, Connected components algorithms for mesh-connected parallel computers. Parallel Algorithms. pp. 43- 58 ,(1994)
Jeremy G. Siek, Lie-Quan Lee, Andrew Lumsdaine, The Boost graph library : user guide and reference manual Addison-Wesley. ,(2002)
Guy E. Blelloch, NESL: A Nested Data-Parallel Language Carnegie Mellon University. ,(1992)
J. -M. Jézéquel, EPEE: an Eiffel Environment to Program Distributed Memory Parallel Computers european conference on object oriented programming. pp. 197- 212 ,(1992) , 10.1007/BFB0053038