skip to main content
10.1145/1094811.1094844acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Lifting sequential graph algorithms for distributed-memory parallel computation

Published:12 October 2005Publication History

ABSTRACT

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

References

  1. P. An, A. Jula, S. Rus, S. Saunders, T. Smith, G. Tanase, N. Thomas, N. Amato, and L. Rauchwerger. STAPL: A standard template adaptive parallel C++ library. In Int. Wkshp on Adv. Compiler Technology for High Perf. and Embedded Processors, page 10, July 2001.]]Google ScholarGoogle Scholar
  2. Guy E. Blelloch. NESL: A nested data-parallel language. Technical Report CMU-CS-93-129, April 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Erik G. Boman, Doruk Bozdag, Umit Catalyurek, Assefaw H. Gebremedhin, and Fredrik Manne. A scalable parallel graph coloring algorithm for distributed memory computers. Preprint.]]Google ScholarGoogle Scholar
  4. Boost. Boost C++ Libraries. http://www.boost.org/.]]Google ScholarGoogle Scholar
  5. Peter N. Brown and Alan C. Hindmarsh. Matrix-free methods for stiff systems of ODE's. SIAM J. Numer. Anal., 23(3):610--638, June 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bradford L. Chamberlain, Sung-Eun Choi, E. Christopher Lewis, Calvin Lin, Lawrence Snyder, and Derrick Weathersby. ZPL: A machine independent programming language for parallel computers. Software Engineering, 26(3):197--211, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Albert Chan and Frank Dehne. CGMgraph/CGMlib: Implementing and testing CGM graph algorithms on PC clusters. In PVM/MPI, pages 117--125, 2003.]]Google ScholarGoogle Scholar
  8. Albert Chan and Frank Dehne. cgmLIB: A library for coarse-grained parallel computing. http://lib.cgmlab.org/, 2004 December.]]Google ScholarGoogle Scholar
  9. Andreas Crauser, Kurt Mehlhorn, Ulrich Meyer, and Peter Sanders. A parallelization of dijkstra's shortest path algorithm. In Lubos Brim, Jozef Gruska, and Jirí Zlatuska, editors, Mathematical Foundations of Computer Science (MFCS), volume 1450 of Lecture Notes in Computer Science, pages 722--731. Springer, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Frank Dehne, Andreas Fabri, and Andrew Rau-Chaplin. Scalable parallel geometric algorithms for coarse grained multicomputers. In Proceedings of the ninth annual symposium on Computational geometry, pages 298--307. ACM Press, 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Frank Dehne and Silvia Götz. Practical parallel algorithms for minimum spanning trees. In Symposium on Reliable Distributed Systems, pages 366--371, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Al Geist, Adam Beguelin, Jack Dongarra, Weicheng Jiang, Robert Manchek, and Vaidyalingam S. Sunderam. PVM: A Parallel Virtual Machine. Scientific and Engineering Computation Series. MIT Press, 1994.]]Google ScholarGoogle ScholarCross RefCross Ref
  13. Steve Goddard, Subodh Kumar, and Jan F. Prins. Connected components algorithms for mesh connected parallel computers. In Sandeep N. Bhatt, editor, Parallel Algorithms, volume 30 of DIMACS Series in Discrete Mathematics and Theoretical Computer Science, pages 43--58. American Mathematical Society, 1997.]]Google ScholarGoogle Scholar
  14. Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar. Introduction to Parallel Computing, Second Edition. Addison-Wesley, 2003.]]Google ScholarGoogle Scholar
  15. W. D. Gropp and B. Smith. PETSc: Portable extensible tools for scientific computation. Technical report, Argonne National Laboratory, Argonne, IL, 1994.]]Google ScholarGoogle Scholar
  16. Florian Hielscher and Peter Gottschling. ParGraph. http://pargraph.sourceforge.net/, 2004.]]Google ScholarGoogle Scholar
  17. J.-M. Jézéquel. EPEE: an Eiffel environment to program distributed memory parallel computers. Journal of Object Oriented Programming, 1993.]]Google ScholarGoogle Scholar
  18. J.-M. Jézéquel. Transparent parallelisation through reuse: Between a compiler and a library approach. In O. M. Nierstrasz, editor, ECOOP'93 proceedings, number 707 in Lecture Notes in Computer Science, pages 384--405. Springer Verlag, July 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Donald B. Johnson and Panagiotis Takis Metaxas. A parallel algorithm for computing minimum spanning trees. In ACM Symposium on Parallel Algorithms and Architectures, pages 363--372, 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Elizabeth Johnson and Dennis Gannon. HPC++: Experiments with the Parallel Standard Template Library. In International Conference on Supercomputing, pages 124--131, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Lie-Quan Lee, Lixin Ge, Marc Kowalski, Zenghai Li, Cho-Kuen Ng, Greg Schussman, Michael Wolf, and Kwok Ko. Solving large sparse linear systems in end-to-end accelerator structure simulations. In Proceedings of the 18th International Parallel and Distributed Processing Symposium (IPDPS'04), 2004.]]Google ScholarGoogle ScholarCross RefCross Ref
  22. Lie-Quan Lee and Andrew Lumsdaine. Generic programming for high performance scientific applications. In Proceedings of the 2002 Joint ACM Java Grande -- ISCOPE Conference, pages 112--121. ACM Press, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Lie-Quan Lee, Jeremy Siek, and Andrew Lumsdaine. The Generic Graph Component Library. In Proceedings of OOPSLA'99, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Calvin Lin and Lawrence Snyder. ZPL: An array sublanguage. In U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, editors, Languages and Compilers for Parallel Computing, pages 96--114, 1993. ftp://ftp.cs.washington.edu/pub/orca/papers/lcpc93.ps.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Message Passing Interface Forum. MPI: A Message Passing Interface. In Proc. of Supercomputing '93, pages 878--883. IEEE Computer Society Press, November 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Ulrich Meyer and Peter Sanders. Delta-stepping: A parallel single source shortest path algorithm. In ESA '98: Proceedings of the 6th Annual European Symposium on Algorithms, pages 393--404. Springer-Verlag, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. David R. Musser and Alexander A. Stepanov. Generic programming. In P. (Patrizia) Gianni, editor, Symbolic and algebraic computation: ISSAC '88, Rome, Italy, July 4--8, 1988: Proceedings, volume 358 of Lecture Notes in Computer Science, pages 13--25, Berlin, 1989. Springer Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Thomas Nitsche. Lifting sequential functions to parallel skeletons. Parallel Processing Letters, 12(2):267--284, June 2002.]]Google ScholarGoogle ScholarCross RefCross Ref
  29. Christopher R. Palmer and J. Gregory Steffan. Generating network topologies that obey power laws. In Proceedings of GLOBECOM '2000, November 2000.]]Google ScholarGoogle ScholarCross RefCross Ref
  30. Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine. The Boost Graph Library: User Guide and Reference Manual. Addison-Wesley, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Jeremy Siek and Andrew Lumsdaine. The Matrix Template Library: A generic programming approach to high performance numerical linear algebra. In International Symposium on Computing in Object-Oriented Parallel Environments, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Jeremy Siek, Andrew Lumsdaine, and Lie-Quan Lee. Generic programming for high performance numerical linear algebra. In Proceedings of the SIAM Workshop on Object Oriented Methods for Inter-operable Scientific and Engineering Computing (OO'98). SIAM Press, 1998.]]Google ScholarGoogle Scholar
  33. Jeremy Siek, Andrew Lumsdaine, and Lie-Quan Lee. Boost Graph Library. Boost, 2001. http://www.boost.org/libs/graph/doc/index.html.]]Google ScholarGoogle Scholar
  34. Alexander A. Stepanov and Meng Lee. The Standard Template Library. Technical Report X3J16/94-0095, WG21/N0482, ISO Programming Language C++ Project, May 1994.]]Google ScholarGoogle Scholar
  35. Y. H. Tsin. Some remarks on distributed depth-first search. Information Processing Letters, 82(4):173--178, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Leslie G. Valiant. A bridging model for parallel computation. Communications of the ACM, 33(8):103--111, 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Lifting sequential graph algorithms for distributed-memory parallel computation

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
              October 2005
              562 pages
              ISBN:1595930310
              DOI:10.1145/1094811
              • cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 40, Issue 10
                Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applications
                October 2005
                531 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/1103845
                Issue’s Table of Contents

              Copyright © 2005 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 12 October 2005

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

              Acceptance Rates

              Overall Acceptance Rate268of1,244submissions,22%

              Upcoming Conference

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader