我正在尝试在大量迭代中运行 openmp for 循环,当它循环的元素数量达到某个值(特别是 2147483647)时,它似乎死了。
在这个数量的元素上进行串行循环没有问题,所以我只能假设它与一些内部 openmp 索引有关。
示例代码:
int n = 33;
int tau = 0;
long long int maxVal = floor((pow(2,n)-2)/2);
#pragma omp parallel for shared(tau)
for(int i=2;i<=maxVal;i++){
tau++;
}
随着 n = 33 tau 不变,表明循环没有运行(并且没有 cpu 使用)。对于 n <33,它运行。
提前致谢!