假设我有一个4核工作站,如果我执行,linux (Ubuntu)会做什么?
mpirun -np 9 XXX
Q1。9是立即一起跑,还是他们在4点后跑4次?
Q2。我认为使用9是不好的,因为其余的1会使计算机混淆(我不知道它会不会被混淆,或者计算机的“头”会决定在这4个核中使用哪一个核?)否则就会被随机挑选。谁决定打电话给哪个核心?
Q3。如果我觉得我的cpu还不错,我的内存足够大,而且我的情况也不是很大。为了充分利用我的cpu和ram,我做mpirun -np 8 XXX,甚至mpirun -np 12 XXX是个好主意吗?
Q4。这些效率优化、Ubuntu、linux、主板或cpu都是由谁来决定的?
你的开悟会很感激的。
发布于 2012-05-30 22:21:26
mpirun按循环顺序调度,因此第一个核心/节点将被分配给该进程。np增加到超出可用物理核/节点的数量。权衡是,与核心/节点相比,随着进程数量的增加,开销会增加。如果您的代码没有严格的CPU绑定(例如,需要大量的IO等待时间),那么您应该这样做。最终,你不知道它是否会更快,除非你尝试。有关更多信息,请参见这个手册页。
发布于 2012-05-30 21:55:04
9立即。
否则,宇宙的大小将是不正确的。所有进程必须同时存在,否则对其他实例来说是不可见的。
如果实例的内存太高,则可以手动停止其他5个进程,直到其他4个进程完成为止。
但是,如果您正在以这种方式使用MPI (仅用于本地计算机),那么让我推荐您使用OpenMP/tbb。MPI的真正目的是在多个网络计算机或集群节点上分发应用程序。
发布于 2013-07-16 15:44:13
是的,您需要对代码进行重大修改,以便将其从MPI应用程序转换为OpenMP或TBB应用程序。如果您的应用程序已经开发过,那么在做任何如此激烈的事情之前,尝试它并进行性能测量。
https://askubuntu.com/questions/144312
复制相似问题