HPC++ Parallel Standard Template Library (PSTL)
One of the major recent changes to the draft
C++ standard has been the addition of the Standard Template Library
(STL). The STL has five basic components.
- Container class templates provide standard
definitions for common aggregate data structures, including
vector, list, deque, set and map.
- Iterators generalize the concept of a pointer. There are
five basic categories of iterators: random access, bidirectional,
forward, input and output.
- Generic algorithms are function templates that allow
standard element-wise operations to be applied to containers via
iterators.
- Function objects are created by wrapping functions with
classes that typically have only operator() defined. They are
used by the generic algorithms in place of function pointers
because they provide greater efficiency.
- Adaptors are used to modify STL containers, iterators, or
function objects. For example, container adaptors are provided to
create stacks and queues, and iterator adaptors are provided to create
reverse iterators to traverse an iteration space backwards.
The Parallel Standard Template Library extends the STL to include
distributed containers, parallel iterators, and parallel algorithms.
Currently, our implementation includes distributed versions of all
seven STL containers along with parallel iterators for each. In
addition, parallel versions of many of the STL algorithms have also
been completed. The following sections describe parallel iterators,
the distributed versions of STL containers, and the parallel
algorithms.
hpc++@extreme.indiana.edu
Last modified: Thu Feb 4 17:05:25 EST 1999