关于核心与MPI计划等级之间的关系

时间:2014-01-08 10:32:36

标签: multithreading mpi multicore

据我所知,在多处理器环境中,任何线程/进程都可以分配给任何核心/处理器,因此,以下行是什么意思:

  

由于协处理器上的内存有限,因此英特尔至强融核协处理器上使用的MPI等级数量应远远少于核心数量。

我的意思是,如果#cores< = #MPI Ranks?

,会出现什么问题

2 个答案:

答案 0 :(得分:1)

该引用仅在应用于内存大小受限问题时才正确;一般来说,这将是一个不正确的声明。通常,您应该使用比Xeon Phi上的物理内核更多的任务来隐藏内存延迟 1

要回答您的问题“如果核心数量少于MPI排名数,会出现什么问题?”:您可能会面临过多的上下文切换风险。在许多问题上,使用比核心更多的任务来隐藏内存延迟 2 是有利的。

1。我甚至不觉得我需要引用一个参考,因为它的广告是多么响亮;但是,他们确实在OpenCL设计文档的一篇文章中提到了它:http://software.intel.com/en-us/articles/opencl-design-and-programming-guide-for-the-intel-xeon-phi-coprocessor

2。这个建议特别适用于Xeon Phi,不一定适用于其他硬件。

答案 1 :(得分:0)

如果你使MPI任务的数量高于核心数量,那就没有意义,因为你开始在一个处理单元上强制执行2个任务,从而耗尽计算资源。

当谈到Xeon Phi上的核心任务数量大大减少时。也许他们更喜欢线程而非流程。 Xeon Phi的体系结构非常奇特,通过维护MPI任务引入的开销会严重削弱计算性能。我不会掩饰我不知道其背后的技术原因。但也许有人会填补它。

如果我没记错,通信总线中有一个响铃(或两个响铃),那么也许所有的通信和障碍都会污染总线,结果证明是无效的。

使用线程或它们提供的本机执行模式可以减少开销。

另外我认为你应该把它看作多核CPU,而不是多CPU机器。为了获得更高的性能,您不希望在4核CPU上运行4个MPI任务,您希望运行一个4线程MPI任务。