我正在尝试并行化这段代码的两个循环:
for ( j = 0 ; j < nt2 ; j++ ) {
dm = MAX_LON + 1;
for ( i = 0 ; i < nt1 ; i++ ) {
d = distancia(tabla1[i],tabla2[j]);
if ( d < dm ) {
dm = d;
im = i;
}
}
ps[j] = im;
}
外循环并行化成功:
#pragma omp parallel for private(i,d,dm,im)
但是我的内心还是有问题的。我尝试使用例如 private(d,m) 和 reduction(max:im),但它不适用于任何组合。我用 private(d) 得到的最接近顺序的结果。有任何想法吗?谢谢!