-7
对于以下每个代码段,请使用OpenMP pragmas使循环并行,或者说明代码段不适合并行执行的原因。OPenMP:何时可以并行化循环
a. for (i = 0; i < sqrt(x); i++)
a[i] = 2.3 * i;
if (i < 10)
b[i] = a[i];
}
b. flag = 0;
for (i = 0; i < n && !flag; i++)
a[i] = 2.3 * i;
if (a[i] < b[i])
flag = 1;
}
c. for (i = 0; i < n && !flag; i++)
a[i] = foo(i);
d. for (i = 0; i < n && !flag; i++) {
a[i] = foo(i);
if (a[i] < b[i])
a[i] = b[i];
}
e. for (i = 0; i < n && !flag; i++) {
a[i] = foo(i);
if (a[i] < b[i])
break;
}
f. dotp = 0;
for (i = 0; i < n; i++)
dotp += a[i] * b[i];
g. for (i = k; i < 2 * k; i++)
a[i] = a[i] + a[i – k];
h. for (i = k; i < n; i++) {
a[i] = c * a[i – k];
任何关于上述问题将是思维非常welcome..any线帮助..
这不是硬件解决服务... – Samer
@gsamaras如果你可以解决任何一个我会尝试所有 –
好吧,我会给出一个提示@DineshReddy,但我没有解决任何硬件。此外,由于您的评论很好,我鼓励您,但*下一次显示一些努力* **请**! – gsamaras