首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mpirun -np N,如果N大于我的核心号码怎么办?

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

Ask Ubuntu用户
提问于 2012-05-30 21:42:26
回答 3查看 10K关注 0票数 5

假设我有一个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都是由谁来决定的?

你的开悟会很感激的。

EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2012-05-30 22:21:26

  1. 9将同时运行。
  2. 其余的一个进程没有混乱;默认情况下,mpirun按循环顺序调度,因此第一个核心/节点将被分配给该进程。
  3. 当然,您可以将np增加到超出可用物理核/节点的数量。权衡是,与核心/节点相比,随着进程数量的增加,开销会增加。如果您的代码没有严格的CPU绑定(例如,需要大量的IO等待时间),那么您应该这样做。最终,你不知道它是否会更快,除非你尝试。
  4. MPI执行初始调度,但对于每个节点上的多个进程,或者一般情况下(因为后台运行着许多其他进程),Linux内核调度程序将接管该任务。

有关更多信息,请参见这个手册页

票数 4
EN

Ask Ubuntu用户

发布于 2012-05-30 21:55:04

9立即。

否则,宇宙的大小将是不正确的。所有进程必须同时存在,否则对其他实例来说是不可见的。

如果实例的内存太高,则可以手动停止其他5个进程,直到其他4个进程完成为止。

但是,如果您正在以这种方式使用MPI (仅用于本地计算机),那么让我推荐您使用OpenMP/tbb。MPI的真正目的是在多个网络计算机或集群节点上分发应用程序。

票数 0
EN

Ask Ubuntu用户

发布于 2013-07-16 15:44:13

是的,您需要对代码进行重大修改,以便将其从MPI应用程序转换为OpenMP或TBB应用程序。如果您的应用程序已经开发过,那么在做任何如此激烈的事情之前,尝试它并进行性能测量。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/144312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档