2016-04-04 54 views
6

我正与gcc-4.7.4编译器的来源合作。我必须学习OpenMP库的工作,并且我已经阅读了OpenMP的不同版本的文档,并且我没有找到关于盗取机制的任何信息。这是真的吗,OpenMP不支持工​​作窃取机制?OpenMP是否支持工作窃取机制?

回答

4

OpenMP将几乎所有的工作调度责任都交给程序员。没有明确的工作窃取支持,也没有任何其他调度策略,除了指定循环迭代如何在处理器之间分配。

但是,OpenMP实施可能会选择使用工作窃取。该方法完全适用于OpenMP支持的显式task构造。同样,实现可能会选择另一种调度方法。

我读过gcc实现确实使用盗取工作,但这并不是我查看过的,我可能是错的。

+3

我必须承认我从来没有听说过[偷工作](https://en.wikipedia.org/wiki/Work_stealing)。这将是很好的描述它是什么,以及它如何与工作分享形成鲜明对比。 –

+1

工作偷听声音隐约像我使用的基于堆栈的方法[这里](http://stackoverflow.com/questions/35675466/reductions-in-parallel-in-logarithmic-time)。 –

+0

@Zboson:好吧,你链接到的维基百科文章提供了你所寻求的不错的描述。 –