并行与递归的猜想

wxixi 2009-03-24 11:27:56
如果在一个递归函数中对for循环使用#pragma omp parallel for
会不会导致线程急剧增加,从而引起性能下降?
能不能对当前进程的线程数进行动态控制?就是看现在线程少,就并行;线程已经够了,就不要再并行了。
就是说,对于同一段程序,很可能不同的时机调用,有的时候需要并行,有的时候不要并行。通过编译对并行进行控制可能不能识别正确的时机,该怎么办?
...全文
120 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxixi 2009-03-31
  • 打赏
  • 举报
回复
谢了!
intel_iclifort 2009-03-27
  • 打赏
  • 举报
回复
简单的说,TBB适合新的C++项目,而OpenMP适合原有项目的改造

wxixi 2009-03-26
  • 打赏
  • 举报
回复
intel TBB是不是更好的解决方法?
intel_iclifort 2009-03-25
  • 打赏
  • 举报
回复
另外,OpenMP 提供了获得当前线程和设定线程数的API
omp_set_num_threads
omp_get_num_threads
omp_get_max_threads
omp_get_thread_num
intel_iclifort 2009-03-25
  • 打赏
  • 举报
回复
针对递归问题, OpenMP 3.0规范提供了一个非常有用的新功能 "tasks". 目前大多数的主流编译器的最新版本都已经支持了

567

社区成员

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

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