【发布时间】:2020-04-24 00:22:04
【问题描述】:
我正在使用一些 OpenCV 代码开发数据处理管道,在实现我的管道后,我发现没有加速,也没有减速。我正在尝试调查为什么会这样。
我想出了以下示例:
int start = 0;
tbb::parallel_pipeline(16,
tbb::make_filter<void, int>(tbb::filter::serial_out_of_order, [&](tbb::flow_control& fc){
if(start < 1000) {
return start++;
}
fc.stop();
return start;
}) &
tbb::make_filter<int, int>(tbb::filter::parallel, [](int num){
std::cout << num << std::endl;
return num + 1;
}) &
tbb::make_filter<int, void>(tbb::filter::parallel, [](int num){
})
);
当此代码执行时,会顺序打印 1-1000。这是正确的行为吗?还是我的环境有问题?
【问题讨论】:
标签: c++ parallel-processing tbb