我有我想要與OpenMP並行的循環。當我與gcc -o prog prog.c -lm -fopenmp
編譯時,我沒有得到任何錯誤。但是當我執行它時,我得到了segmentation fault(core dumped)
。當然來自OpenMP的問題命令,因爲程序的時候我刪除#pragma
工程...OpenMP給出(核心轉儲)
這裏是並行循環:
ix = (i-1)%ILIGNE+1;
iy = (i-1)/ILIGNE+1;
k = 1;
# pragma omp parallel for private(j,jx,jy,r,R,voisin) shared(NTOT,k,i,ix,iy) num_threads(2) schedule(auto)
for(j = 1;j <= NTOT;j++){
if(j != i){
jx = (j-1)%ILIGNE+1;
jy = (j-1)/ICOLONE+1;
r[k][0] = (jx-ix)*a;
r[k][1] = (jy-iy)*a;
R[k] = sqrt(pow(r[k][0],2.0)+pow(r[k][1],2.0));
voisin[k] = j;
k++;
}
}
我試圖改變堆棧大小無限制,但它不」解決問題。請告訴我,如果它是關於內存泄漏或競爭條件或其他什麼?並感謝您的幫助
感謝吉爾斯。它完成了;) –
它是否工作? – Gilles
是的,它的工作,thanx :) –