2012-04-16 14 views
6

Estoy paralelizando con una construcción paralela for en OpenMP.omp for with collapse clause no está compilando

En las especificaciones de OpenMP, puedo ver:

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); 
} 

He código que me parece bastante similar escrito, pero no se compila:

símbolo inesperado después de la cláusula colapso

#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]); 

¿Por qué no está funcionando?

+0

¿Qué versión de openmp tienes? – Anycorn

+0

¡el que tiene VS2010! ? – octoback

+0

VS aún no está actualizado con el estándar OpenMP actual. Quizás quieras probar gcc, que implementa el actual. –

Respuesta

5

collapse es un pragma OpenMP 3.0. El mensaje de error que recibe generalmente se debe a un compilador que implementa OpenMP 2.x solamente.

Cuestiones relacionadas