У меня есть код примерно такой:
void foo(arr1,arr2,x,y,cnt1)
{int p[10];
#pragma omp target data map (to: arr1, arr2, x, y, cnt1) map(tofrom: p)
#pragma omp target teams distribute parrallel for colapse(12)
for ........{
for ......{
...............{ // 12 for loops
int arr3[50];
for (i=1; i<13; i++){
arr3 [ arr1[i] ] = arr3 [ arr[1] ] + 1;
}
for (j=1; j<13; j++)
if (arr3[j] == 10) p[1]=1; // here is the problem
}
}
}
}
for (x=1; x<10; x++){
for (y=1; y<10; y++){
some code here ......
array arr1 is always the same, arr2 and variable cnt1 are updated (different every time)
foo(arr1,arr2,x,y,cnt1);
}
}
Проблема в том, что код зависает в цикле for.
Может кто-нибудь помочь мне, пожалуйста?