我需要一些有关 OpenMP 的帮助。如果一个线程以 for 循环结束,是否有可能对另一个线程有帮助,将其划分?我在一个循环中有一个循环,其中有中断;并且线程不会同时结束,所以有些线程有很多工作,而其他线程已经完成。(所以有未使用的核心)。我在 corei7 上运行我的程序,OpenMP 似乎将循环划分为 8 个线程。但是,当一个线程完成工作一段时间后,利用率开始下降。
#pragma omp parallel for
for(i = 0; i < Vector.size(); i++) {
for(j = 0; j < othervector.size(); j++) {
{some code}
if(sth is true) break;
}
}
谢谢你。