gpt4 book ai didi

c++ - 使用 openmp 并行化内循环

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:22:44 25 4
gpt4 key购买 nike

我有三个嵌套循环,但只有最里面的循环是可并行的。外循环和中循环停止条件取决于最内层循环所做的计算,因此我无法更改顺序。

我在最内层循环之前使用了 OPENMP pragma 指令,但两个线程的性能比一个线程差。我猜这是因为线程是在外循环的每次迭代中创建的。

有没有办法在外层循环之外创建线程,而只在最内层循环中使用它?

提前致谢

最佳答案

OpenMP 应该 使用线程池,这样您就不会在每次执行循环时都重新创建线程。然而,严格来说,这可能取决于您使用的 OpenMP 实现(我知道 GNU 编译器使用池)。我建议您寻找其他常见问题,例如虚假分享。

关于c++ - 使用 openmp 并行化内循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4906983/

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