我遇到了一个问题,即我的以下代码在使用 openmp 时运行速度较慢:
chunk = nx/nthreads;
int i, j;
for(int t = 0; t < n; t++){
#pragma omp parallel for default(shared) private(i, j) schedule(static,chunk)
for(i = 1; i < nx/2+1; i++){
for(j = 1; j < nx-1; j++){
T_c[i][j] =0.25*(T_p[i-1][j] +T_p[i+1][j]+T_p[i][j-1]+T_p[i][j+1]);
T_c[nx-i+1][j] = T_c[i][j];
}
}
copyT(T_p, T_c, nx);
}
print2file(T_c, nx, file);
问题是当我运行多个线程时,计算时间会长得多。