请教一个关于openmp的问题

rf1377 2007-05-02 09:26:23
text()本身是一个循环程序,如果在main中调用text()
如#pragma omp parallel for
for(int i=1;i<2;i++)
text();
速度明显比单核快(我用的是双核)
但是如果不在main中优化,直接在text中对text()中的循环优化,再调用,速度反而比不用优化还慢,不知道是为什么,谁能教一下,谢了
...全文
475 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mathe 2007-05-23
  • 打赏
  • 举报
回复
线程颗粒度问题。
在同样能够并行的情况下,每个线程执行代码当然越多越好。
m2213231 2007-05-17
  • 打赏
  • 举报
回复
呵呵
zzsz1983 2007-05-14
  • 打赏
  • 举报
回复
赖勇浩 2007-05-14
  • 打赏
  • 举报
回复
#pragma omp parallel for
for(int i=1;i<2;i++)
text();

---------------------------------------

这样的代码,循环体里面的text()只执行了一次,也会快?
rf1377 2007-05-05
  • 打赏
  • 举报
回复
谢谢拉,我那天测了一下也发现这个问题,时间太短,所有时间都花在创建线程
flyingdog 2007-05-03
  • 打赏
  • 举报
回复
并不是任何并行都会快的。线程的创建和销毁都需要时间,反复创建线程反而慢。
你最好根据编译器的报告了解编译器在什么地方如何并行化了,并且使用thread profiler检查线程间的情况。
对于执行时间非常短的地方,有时不并行更好。

568

社区成员

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

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