大家帮我看看这个openmp中的for问题?

max_wx 2009-02-25 10:02:32
加精
串行代码是这样:
for (int i = 0; i < 1000; i++)
if(!BuildJPGTexture(IDR_JPG_PPNAME1 + i, tPPName[i]))
return false;
我把这段代码改成并行后是这样:
#pragma omp parallel for reduction(*:sum)
for (int i = 0; i < 1000; i++)
if(!BuildJPGTexture(IDR_JPG_PPDEVICE1 + i, tPPDevice[i]))
sum=0;
if(sum == 0 )
return false;
因为for中不可以在没有做完1000次时就跳出循环,所以我就加了一个*逻辑,在做完1000次后才根据sum的结果来返回。可是为什么我的这段代码编译可以通过,但却实现不了原来那段串行代码的功能。
我openmp刚上手,请高手们帮我看看是什么问题,或者有没有效率更高的一段代码来替换原来的串行代码。
...全文
276 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫气东来 2011-01-19
  • 打赏
  • 举报
回复
reduction不是这样用的,LZ,多看看书吧
平凡君 2009-03-19
  • 打赏
  • 举报
回复
呵呵 来看看 谁又网上自动选课系统的毕业设计啊 是jsp的 有的话请发3596395619@qq.com
txt_paul 2009-03-18
  • 打赏
  • 举报
回复
十楼也占了吧
txt_paul 2009-03-18
  • 打赏
  • 举报
回复
难得啊,占了个八楼,
txt_paul 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 max_wx 的帖子:]
串行代码是这样:
for (int i = 0; i < 1000; i++)
if(!BuildJPGTexture(IDR_JPG_PPNAME1 + i, tPPName[i]))
return false;
我把这段代码改成并行后是这样:
#pragma omp parallel for reduction(*:sum)
for (int i = 0; i < 1000; i++)
if(!BuildJPGTexture(IDR_JPG_PPDEVICE1 + i, tPPDevice[i]))
sum=0;
if(sum == 0 )
return false;
因为for中不可以在没有做完1000次时就跳出循环,所以我就加了一个*逻…
[/Quote]
for 中也可以用break跳出啊,也可以用 continue 继续啊。类似
for(;;;)
{
doSomething...
if("你觉得你很帅".Length==6)
{
break;
}
if(条件2)
continue;
}
zigui8280 2009-03-18
  • 打赏
  • 举报
回复

fzuld3319 2009-03-17
  • 打赏
  • 举报
回复
观望
xinshou000 2009-03-17
  • 打赏
  • 举报
回复
bumingbai...xuexi xuexi
smoking1017 2009-03-17
  • 打赏
  • 举报
回复
观望
qgdbr08 2009-03-16
  • 打赏
  • 举报
回复
记得 并行区域里应该是单输入单输出的,不能使用break,return之类的...
aero_boy 2009-02-27
  • 打赏
  • 举报
回复
不好意思,上面错了
#pragma omp parallel for
for (int i = 0; i < 1000; i++)
if(!BuildJPGTexture(IDR_JPG_PPNAME1 + i, tPPName[i]))

return false;
aero_boy 2009-02-27
  • 打赏
  • 举报
回复
#pragma omp parallel private(i)
for (int i = 0; i < 1000; i++)
if(!BuildJPGTexture(IDR_JPG_PPNAME1 + i, tPPName[i]))
return false;
max_wx 2009-02-25
  • 打赏
  • 举报
回复
自己先顶下

566

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧