OpenMP的for循环共享代码区内如果return出来?

yasaka 2011-11-19 02:59:14
各位好,我是请教一个常见的问题:
有一段PVS算法代码,我把它改为在OpenMP下面并行,其中在
#pragma omp parallel for
里面的共享代码区,遇到一个条件,需要return回来,但是共享代码区内不能使用return、break之类的语句,这个问题怎么解决呢?
有人说用if...else...可以解决,那具体又该怎么做呢?
可否给一段代码以供我参考?
...全文
442 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yasaka 2012-01-09
  • 打赏
  • 举报
回复
谢谢intel_iclifort和intel_www,我搞定了,没有使用TASK,而是直接continue,for循环完了之后根据标志变量的值再返回那个值。
intel_iclifort 2011-12-27
  • 打赏
  • 举报
回复
可以考虑使用 Intel C++ 编译器看看,已经支持最新的 3.1 规范了.

安装后,只要在IDE 工程中切换到 using Intel C++ 即可
yasaka 2011-12-11
  • 打赏
  • 举报
回复
就是依赖了,另外,VC++ 2010似乎只支持OpenMP 2.5,TASK是3.0提出来的吧?
intel_www 2011-11-29
  • 打赏
  • 举报
回复
你的return条件依赖循环的计算结果吗?如果不依赖的话可以考虑用OMP TASK来替换OMP PARALLEL FOR.
yasaka 2011-11-21
  • 打赏
  • 举报
回复
怎么没人回答啊,好心急啊!
yasaka 2011-11-19
  • 打赏
  • 举报
回复
着急啊,难道没办法吗?分不够可以加啊!

567

社区成员

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

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