Chapter 18. Parallel Mode

Table of Contents

Prerequisite Compiler Flags
Using Parallel Mode
Using Specific Parallel Components
Interface Basics
Configuration and Tuning
Setting up the OpenMP Environment
Compile Time Switches
Run Time Settings and Defaults
Implementation Namespaces

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.


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


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) .