使用openmp对嵌套for循环进行并行优化,但是优化结果并没有提高,反而有所下降。下面是代码,求解释?
答案:1 悬赏:60 手机版
解决时间 2021-03-27 02:38
- 提问者网友:酱爆肉
- 2021-03-26 09:10
使用openmp对嵌套for循环进行并行优化,但是优化结果并没有提高,反而有所下降。下面是代码,求解释?
最佳答案
- 五星知识达人网友:北方的南先生
- 2021-03-26 09:17
这个代码没有体现并行的优越性,主要的时间花费在cout输出上,因为输出到屏幕上的yes个数是一定的,所以并行和串行的时间差不多。建议你把那个cout一句注释掉,然后把内循环换成其他的运算看时间差。
我做的测试
代码
#pragma omp parallel for
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
if ((a[i][j] + b[i][j]) > 20)
{
int s=0;
for (int k = 0; k < 10000; k++)
{
s += k;
}
};
}
}串行时间:0.236686
并行时间:0.203561
我做的测试
代码
#pragma omp parallel for
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
if ((a[i][j] + b[i][j]) > 20)
{
int s=0;
for (int k = 0; k < 10000; k++)
{
s += k;
}
};
}
}串行时间:0.236686
并行时间:0.203561
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯