并行扩展
来自cppreference.com
< cpp | experimental
C++ 并行扩展 (C++ Extensions for Parallelism),ISO/IEC TS 19570:2015 为 C++ 标准库定义下列新组件:
执行策略
并行 TS 描述三种执行策略:顺序、并行和并行加向量,并提供对应的执行策略类型和对象。用户可以通过以对应类型的执行策略对象调用并行算法,静态地选择执行策略,或用类型擦除的 execution_policy
类动态地选择执行策略。
实现可以定义额外的执行策略为扩展。以实现定义类型执行策略对象调用并行算法的语义是实现定义的。
执行策略类型 (类) | |
全局执行策略对象 (常量) | |
动态执行策略 (类) | |
测试类是否表示执行策略 (类模板) |
异常列表
在并行执行期间引发的异常 (类) |
既存算法的并行化版本
该 TS 为来自 <algorithm>、<numeric> 和 <memory> 的下列 69 个算法提供并行化版本:
新算法
在标头
<experimental/algorithm> 定义 | |
类似 std::for_each,但返回 void (函数模板) | |
应用函数对象到序列的前 n 个元素 (函数模板) | |
在标头
<experimental/numeric> 定义 | |
(并行 TS) |
类似 std::accumulate,但不按顺序进行 (函数模板) |
类似 std::partial_sum,从第 i 个和排除第 i 个输入元素 (函数模板) | |
类似 std::partial_sum,包含第 i 个元素于第 i 个和 (函数模板) | |
(并行 TS) |
应用函数对象,然后进行不按顺序的规约 (函数模板) |
应用函数对象,再计算 exclusive_scan (函数模板) | |
应用函数对象,再计算 inclusive_scan (函数模板) |