C++14 TS 並列アルゴリズムライブラリ

N3724 A Parallel Algorithms Library


C++14後のParallelism TSでは、並列アルゴリズムの導入が検討されています。
いま考えられているのは、アルゴリズムの実装を実行ポリシー(タグ)で分岐しようというもの。

std::vector<int> vec = ...

// これまで通りの、シーケンシャルソート
std::sort(vec.begin(), vec.end());

// 明示的なシーケンシャルソート
std::sort(std::seq, vec.begin(), vec.end());

// 並列実行の許可
std::sort(std::par, vec.begin(), vec.end());

これは、CUDAのThrustライブラリが行っている設計を踏襲したものです。
このような作りにしておけば、今後の拡張がしやすいそうです(ベクトル化、GPUでの実行、複数サーバーに分散した実行等)。