1

我想在尝试与parallel_for. 即使我在尝试for使用parallel_for. 我正在研究的应用领域是图像处理。

令人惊讶的是,即使我创建了一个循环并由parallel_for!!

我的意思是我有一个如下代码块,它在 7 秒内执行,没有任何并行化

<code block without parallelisation>   //(Executes in 7 seconds)

如果我将上面的代码包含在一个parallel_for循环中,性能将增加到 18 秒。

parallel_for(0,1,[&](int random_var){   //(Executes in 18 seconds)
<code block without parallelisation> 
});

我完全无法理解这种行为。是什么导致了如此巨大的处理开销。在这种情况下,我认为不应该存在任何与内存带宽相关的问题?

如果您需要有关我面临的这个特定问题的更多信息,请告诉我。

4

1 回答 1

0

因为即使在 parallel_for 中进行一次迭代,它也会在线程中执行您的代码。所以会有主线程的抢占。还有其他与线程相关的簿记工作,这需要时间。

于 2013-05-14T06:31:50.607 回答