gpt4 book ai didi

c++ - MS concurrency::parallel_for() 单次迭代的性能

转载 作者:太空宇宙 更新时间:2023-11-04 14:06:48 26 4
gpt4 key购买 nike

我想在尝试使用 parallel_for 实现并发时,有很多关于性能问题的问题。在尝试使用 parallel_for 并行化内存访问广泛的 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>
});

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

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

最佳答案

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

关于c++ - MS concurrency::parallel_for() 单次迭代的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16535713/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com