我正在尝试了解 ccNUMA 系统,但我对 OpenMP 的调度如何损害性能有点困惑。假设我们有以下代码。如果 c1 小于 c0 或更大会发生什么?我理解一般的想法不同的块大小导致远程访问,但我在某处读到,对于小块大小,缓存行正在发生一些事情,我真的很困惑。
#pragma omp parallel for schedule(static,c0)
for(int i=0;i<N;i++)
A[i]=0;
#pragma omp parallel for schedule(static,c1)
for(int i=0;i<N;i++)
B[i]=A[i]*i;