Chapter 31. Parallel Mode

Table of Contents

Intro
Semantics
Using
Using Parallel Mode
Using Specific Parallel Components
Design
Interface Basics
Configuration and Tuning
Implementation Namespaces
Testing
Bibliography

The libstdc++ parallel mode is an experimental parallel implementation of many algorithms the C++ Standard Library.

Several of the standard algorithms, for instance std::sort, are made parallel using OpenMP annotations. These parallel mode constructs and can be invoked by explicit source declaration or by compiling existing sources with a specific compiler flag.

Intro

The following library components in the include <numeric> are included in the parallel mode:

  • std::accumulate

  • std::adjacent_difference

  • std::inner_product

  • std::partial_sum

The following library components in the include <algorithm> are included in the parallel mode:

  • std::adjacent_find

  • std::count

  • std::count_if

  • std::equal

  • std::find

  • std::find_if

  • std::find_first_of

  • std::for_each

  • std::generate

  • std::generate_n

  • std::lexicographical_compare

  • std::mismatch

  • std::search

  • std::search_n

  • std::transform

  • std::replace

  • std::replace_if

  • std::max_element

  • std::merge

  • std::min_element

  • std::nth_element

  • std::partial_sort

  • std::partition

  • std::random_shuffle

  • std::set_union

  • std::set_intersection

  • std::set_symmetric_difference

  • std::set_difference

  • std::sort

  • std::stable_sort

  • std::unique_copy

The following library components in the includes <set> and <map> are included in the parallel mode:

  • std::(multi_)map/set<T>::(multi_)map/set(Iterator begin, Iterator end) (bulk construction)

  • std::(multi_)map/set<T>::insert(Iterator begin, Iterator end) (bulk insertion)

Bibliography

Parallelization of Bulk Operations for STL Dictionaries . Johannes Singler. Leonor Frias. Copyright © 2007 . Workshop on Highly Parallel Processing on a Chip (HPPC) 2007. (LNCS) .

The Multi-Core Standard Template Library . Johannes Singler. Peter Sanders. Felix Putze. Copyright © 2007 . Euro-Par 2007: Parallel Processing. (LNCS 4641) .