我想知道使用 OpenMP 的 for 循环的进度。我知道减少指令不起作用,但我这样写:
#pragma omp for reduction (+:sum)
for (int i=0; i < size; i++){
// do something that takes about 10seconds
sum++;
#pragma omp critical
cout << sum << " / " << size << endl;
}
这将返回如下内容:
1 / 100
1 / 100
2 / 100
1 / 100
...
但我想要这个:
1 / 100
2 / 100
3 / 100
. ..
有没有办法在指令sum
期间获得正确的值?reduction
还是我应该使用另一种方法?