并行扩展
来自 cppreference.com
< cpp | experimental
C++ 并行扩展,ISO/IEC TS 19570:2015 为 C++ 标准库定义了以下新组件
内容 |
[编辑] 执行策略
并行 TS 描述了三种执行策略:顺序,并行,以及并行+向量,并提供了相应的执行策略类型和对象。用户可以通过使用与相应类型相对应的执行策略对象调用并行算法来静态选择执行策略,也可以使用类型擦除的 execution_policy
类动态选择执行策略。
实现可以定义额外的执行策略作为扩展。使用实现定义类型的执行策略对象调用并行算法的语义是实现定义的。
在头文件
<experimental/execution_policy> 中定义 | |
执行策略类型 (类) | |
全局执行策略对象 (常量) | |
动态执行策略 (类) | |
测试一个类是否表示执行策略 (类模板) |
[编辑] 异常列表
在头文件
<experimental/exception_list> 中定义 | |
在并行执行期间引发的异常 (类) |
[编辑] 现有算法的并行版本
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) |
应用一个仿函数,然后顺序不同地进行规约 (函数模板) |
应用一个仿函数,然后计算独占扫描 (函数模板) | |
应用一个仿函数,然后计算包含扫描 (函数模板) |