mpirun -np N,如果 N 大于我的核心数怎么办?

Dan*_*iel 5 parallels cpu ram

假设我有一个 4 核工作站,如果我执行,linux (Ubuntu) 会做什么

mpirun -np 9 XXX

一季度。9 会立即一起跑,还是他们会在 4 后跑 4?

Q2。我觉得用9不好,因为剩下的1,会让电脑糊涂,(不知道是不是完全糊涂了,还是电脑的“头”来决定哪个核将使用 4 个核心?)或者将随机选择。谁决定调用哪一个核心?

Q3。如果我觉得我的cpu还不错,我的ram还可以,足够大,而且我的箱子不是很大。为了充分利用我的cpu和ram,我做mpirun -np 8 XXX,甚至mpirun -np 12 XXX是个好主意吗?

第 4 季度。谁来决定所有这些效率优化,Ubuntu 或 linux,或主板或 cpu?

您的启蒙将不胜感激。

ish*_*ish 4

  1. 9 个将同时运行。
  2. 剩下的1个进程没有混乱;mpirun默认情况下按循环顺序调度,因此第一个核心/节点将被分配该进程。
  3. 您当然可以增加np可用物理核心/节点的数量。代价是,当进程数量多于核心/节点时,开销就会增加。如果您的代码不是严格受 CPU 限制(例如需要大量 IO 等待时间),则应该这样做。最终,在您尝试之前,您不知道它是否会更快。
  4. MPI 进行初始调度,但对于每个节点多个进程,或者只是一般而言(因为还有许多其他进程在后台运行),Linux 内核调度程序将接管。

请参阅此手册页以获取更多信息。