The parallel processing library provides data structures and algorithms for parallel processing. It supports different kinds of parallelism, such as threads running on a shared-memory architecture or separate processes running on different machines that use message-passing to communicate. This library is used by the Parallel BGL.
This library contains a set of concepts that describe the behavior of communicating processes, implementations that model these concepts, and parallel/distributed algorithms and data structures that use these concepts. Most of the algorithms and data structures provided are based on facilities in the C++ Standard Library or Boost. In many cases the same interfaces are preserved, and a combination of C++ specialization and overloading is used to automatically select the distributed or parallel versions when needed.
Concepts

Process groups abstract the notion of coordinating, communicating processes. They are the central abstractions within the parallel processing library and the Parallel BGL on which all parallel algorithms and distributed data structures are built.
Process groups
Algorithms
Copyright (C) 2005 The Trustees of Indiana University.
Authors: Douglas Gregor and Andrew Lumsdaine