Extensions for parallelism
From cppreference.net
<
cpp
|
experimental
C++并行扩展,ISO/IEC TS 19570:2015为C++标准库定义了以下新组件:
目录 |
执行策略
并行化TS描述了三种执行策略:
sequential
、
parallel
和
parallel+vector
,并提供了相应的执行策略类型和对象。用户可以通过两种方式选择执行策略:静态方式是通过调用并行算法时传入对应类型的执行策略对象,动态方式则是使用类型擦除的
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)
|
应用函数对象后无序规约
(函数模板) |
|
应用函数对象后计算排除性扫描
(函数模板) |
|
|
应用函数对象后计算包含性扫描
(函数模板) |
|