我在Intel i5-2410M(带有超线程的双核)上运行带有OpenMP指令的C代码。
由于使用#pragma omp parallel for simd
,
实现的加速可能是大约x1000,因此:
#pragma omp parallel shared(a,b,c) private(i,j,k) {
#pragma omp for simd collapse (3)
for (i=0; i<5000; i++){
for (j=0; j<5000; j++){
for (k=0; k<5000; k=k+1){
a[i][j]=(a[i][j])+((b[i][k])*(c[k][j]));
} } }
}
并且,计算效率的公式=加速/不。处理器
因此,效率= 1000/1 = 1000.是否有效?
我从未见过大于1的效率。这让我很困惑,因为我不知道效率是否&gt; 1是否是有效数字。
希望你能澄清我的怀疑。
谢谢。