当前位置: 代码迷 >> 多核软件开发 >> OpenMP Guided求解,该怎么解决
  详细解决方案

OpenMP Guided求解,该怎么解决

热度:3621   发布时间:2013-02-26 00:00:00.0
OpenMP Guided求解 - C/C++ / C++ 语言
OpenMP Guided是怎样的工作机制?
求大神指导

------解决方案--------------------------------------------------------
基本上就是动态分配任务的思想,解决原先静态分配可能导致的性能问题

比如说,循环从 1 to 100, OMP thread 数量 = 4,那么缺省的分配方式就是 简单地一分为四:
OMP thread 1 拿 1 到 25; OMP thread 2 拿 26 到 50;OMP thread 3 拿 51 到 75, OMP thread 4 拿 76 到 100.

这种平均分配的模式,在某些特定的情况下,会导致不同 OMP thread 间的工作负载(Workload)分配不均衡,还是有性能提升的空间。

所以产生了动态分配的想法。或者,每个 OMP thread 轮流分配一个比较小的数量直到全部分配完毕 (比如说一次拿 5 个,而不是原先一次性拿满 25 个) ; 或者,每个 OMP thread 先分配一个固定数量,然后再根据完成的情况,先完成的再继续分配一个小数量,直到全部分配完毕

  相关解决方案