Generic Programming in the Parallel Boost Graph Library

We present a library of generic software components for parallel and distributed computations on graphs, based on the Boost Graph Library (BGL). 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 talk, 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 parallel software libraries. We demonstrate that the resulting algorithm implementations are both efficient and scalable with performance results for several algorithms implemented in the open-source Parallel Boost Graph Library.

Speaker Details

Doug is a post-doctoral researcher in the Open Systems Laboratory at Indiana University. His research focuses on the Generic Programming methodology for the development of efficient, reusable software libraries, and especially on the application of Generic Programming to the areas of high-performance parallel computing and graph theory. Doug authored and maintains several open-source software packages, including Boost.MPI (high-performance, highly-usable C++ bindings for the Message Passing Interface), MPI.NET (C# bindings for MPI), and the sequential and Parallel Boost Graph Libraries, and is an active contributor to the ISO C++ standards committee.

Date:
Speakers:
Doug Gregor
    • Portrait of Jeff Running

      Jeff Running