【发布时间】:2014-01-26 09:33:50
【问题描述】:
据我所知,在多处理器环境中,任何线程/进程都可以分配给任何内核/处理器,所以下面这行是什么意思:
由于协处理器上的内存有限,英特尔至强融核协处理器上使用的 MPI 等级数量应大大少于内核数量。
我的意思是,如果#cores
【问题讨论】:
标签: multithreading mpi multicore
据我所知,在多处理器环境中,任何线程/进程都可以分配给任何内核/处理器,所以下面这行是什么意思:
由于协处理器上的内存有限,英特尔至强融核协处理器上使用的 MPI 等级数量应大大少于内核数量。
我的意思是,如果#cores
【问题讨论】:
标签: multithreading mpi multicore
该引用仅在应用于内存大小受限问题时才是正确的;一般来说,这将是一个不正确的陈述。一般来说,您应该使用比 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,不一定适用于其他硬件。
【讨论】:
好吧,如果你让 MPI 任务的数量高于核心数量,那是没有意义的,因为你开始在一个处理单元上执行 2 个任务,因此会耗尽计算资源。
在 Xeon Phi 上,与核心相比,任务数量要少得多。也许他们更喜欢线程而不是进程。 Xeon Phi 的架构非常奇特,维护 MPI 任务引入的开销会严重削弱计算性能。我不会隐瞒我不知道背后的技术原因。但也许有人会填写。
如果我没记错的话,通信总线中有一个环(或两个环),那么可能所有的通信和障碍都在污染总线,结果证明是无效的。
使用线程或它们提供的本机执行模式开销更少。
另外我认为你应该把它看作多核 CPU,而不是多 CPU 机器。为了获得更高的性能,您也不想在 4 核 CPU 上运行 4 个 MPI 任务,而是希望运行一个 4 线程 MPI 任务。
【讨论】: