带有折叠子句的 OMP 未编译
omp for with collapse clause is not compiling
我正在与OpenMP中的并行for
结构并行化。
在 OpenMP 规范中,我可以看到:
void sub(float *a)
{
int i, j, k;
#pragma omp for collapse(2) private(i, k, j)
for (k=kl; k<=ku; k+=ks)
for (j=jl; j<=ju; j+=js)
for (i=il; i<=iu; i+=is)
bar(a,i,j,k);
}
我编写了我发现非常相似的代码,但它无法编译:
折叠子句后的意外令牌
#pragma omp for collapse(2)
for(int i=0;i<N-m;i++)
for(int k=0;k<m_ndim;k++)
points_[i][k]=TRandom::randD(lower[k],upper[k]);
为什么它不起作用?
collapse
是一个OpenMP 3.0编译指示。您收到的错误消息通常是由于仅实现 OpenMP 2.x 的编译器造成的。