据我所知,在多处理器环境中,任何线程/进程都可以分配给任何核心/处理器,因此,以下行是什么意思:
由于协处理器上的内存有限,因此英特尔至强融核协处理器上使用的MPI等级数量应远远少于核心数量。
我的意思是,如果#cores< = #MPI Ranks?
,会出现什么问题答案 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任务。