【发布时间】:2018-03-09 22:38:34
【问题描述】:
C++ 17 将execution policy 添加到许多算法中。
对于像for_each 这样的算法,很容易想象并行化版本的实现是如何工作的:不是从头到尾依次调用提供的函数,而是对范围进行分区并为每个分区并行执行函数。
但是对于暗示顺序遍历到第一次出现的算法,例如find,并行化版本会做什么?
【问题讨论】:
-
您仍然可以用
find划分范围,然后选择最接近的成功子范围。 -
我想你会交错分区,然后一旦你找到一个位置,你就必须与其他工人协调,只为较小的位置继续,否则停止。这样,人们会希望通过并行性获得的收益不会因第一次出现之后的额外工作而受到太大影响。但这就是正在发生的事情吗?
标签: c++ algorithm parallel-processing c++17