并行扩展
来自 cppreference.cn
C++ 并行扩展,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) |
应用一个函数对象,然后无序归约 (函数模板) |
应用一个函数对象,然后计算独占扫描 (函数模板) | |
应用一个函数对象,然后计算包容扫描 (函数模板) |