2012-04-16 30 views
6

Tôi đang song song với cấu trúc song song for trong OpenMP.omp với mệnh đề thu gọn không được biên dịch

Trong OpenMP thông số kỹ thuật, tôi có thể thấy:

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

Tôi đã viết code mà tôi thấy khá tương tự, nhưng nó không biên dịch:

dấu hiệu bất ngờ sau khi khoản sụp đổ

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

Tại sao nó không hoạt động?

+0

bạn có phiên bản openmp nào? – Anycorn

+0

thiết bị có VS2010! ? – octoback

+0

VS vẫn chưa cập nhật tiêu chuẩn OpenMP hiện tại. Có lẽ bạn muốn thử gcc thay vào đó, thực hiện cái hiện tại. –

Trả lời

5

collapse là bản pragma OpenMP 3.0. Thông báo lỗi bạn nhận được thường là do trình biên dịch chỉ triển khai OpenMP 2.x.

Các vấn đề liên quan