Namespaces
Variants

Extensions for parallelism

From cppreference.net

C++並列処理拡張機能、ISO/IEC TS 19570:2015は、C++標準ライブラリに対して以下の新しいコンポーネントを定義しています:

目次

実行ポリシー

並列処理TSは3つの実行ポリシー: sequential , parallel , および parallel+vector を記述し、対応する実行ポリシー型とオブジェクトを提供します。ユーザーは、対応する型の実行ポリシーオブジェクトを並列アルゴリズムに渡すことで静的に実行ポリシーを選択するか、または型消去された execution_policy クラスを使用して動的に選択することができます。

実装は拡張として追加の実行ポリシーを定義してもよい。実装定義型の実行ポリシーオブジェクトで呼び出された並列アルゴリズムのセマンティクスは実装定義である。

実行ポリシー型
(クラス)
グローバル実行ポリシーオブジェクト
(定数)
動的実行ポリシー
(クラス)
クラスが実行ポリシーを表すかどうかをテスト
(クラステンプレート)

例外リスト

定義済みヘッダー <experimental/exception_list>
並列実行中に発生した例外
(クラス)

既存アルゴリズムの並列化バージョン

TSは<algorithm>、<numeric>、<memory>から以下の69のアルゴリズムの 並列化バージョン を提供します:

並列化バージョンが提供されている標準ライブラリアルゴリズム

新規アルゴリズム

定義済みヘッダ <experimental/algorithm>
std::for_each と類似しているが、voidを返す
(関数テンプレート)
シーケンスの最初のn個の要素に関数オブジェクトを適用する
(関数テンプレート)
定義済みヘッダ <experimental/numeric>
(parallelism TS)
std::accumulate と類似しているが、順序不同で実行される
(関数テンプレート)
std::partial_sum と類似しているが、i 番目 の入力要素をi 番目 の合計から除外する
(関数テンプレート)
std::partial_sum と類似しているが、i 番目 の入力要素をi 番目 の合計に含める
(関数テンプレート)
(parallelism TS)
ファンクタを適用した後、順序不同でリダクションを行う
(関数テンプレート)
ファンクタを適用した後、排他的スキャンを計算する
(関数テンプレート)
ファンクタを適用した後、包括的スキャンを計算する
(関数テンプレート)