我想知道我的程序怎么被划分为多线程的?效率一般能够提升多少呢?

nobounded 2008-05-15 05:15:20
我想知道我的程序怎么被划分为多线程的?效率一般能够提升多少呢?
...全文
163 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Intel_merryhy 2008-05-20
  • 打赏
  • 举报
回复
现行的多线程编程方法,大多数需要你自己创建线程,和分配任务。这种情况下,由开发者本人来控制程序在那里要划分为多线程。
如果是用intel compiler's openmp 或者ipp, mkl 的话,一般都是函数为基础的,以数据为划分的。
如 
#pragma omp parallel for
for (i=0; i <10; i++){ a[i]=b[i]+c[i]}
....
}
一个线程 运行 i=[0,5), 一个线程运行 i=[5,10)。
这种线程划分,基本上不需要人工参与。

这种多线程方法的效率很高,从我们的测试看 

一般不能到极限的两倍,不过70%以上是可以达到的。 

如果你想知道你的程序的流程可以用intel thread profiler, 的timeview 功能看到。 
lixun_21 2008-05-15
  • 打赏
  • 举报
回复
mark

567

社区成员

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

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