【问题标题】:How exacly is MPI launching so many proccessePI 究竟是如何启动这么多进程的
【发布时间】:2019-07-15 17:31:19
【问题描述】:

在获得了在集群上使用 MPI 的一些经验之后,我最近开始在我的计算机上运行 MPI 进行一些练习。我有一个双核处理器,但很好奇如果我指定大量进程会发生什么,令我惊讶的是它可以工作。

mpirun -np 40 ./wha

这究竟是如何发生的。即使考虑到单个处理器可能产生的线程数,这似乎也是不可能的。

【问题讨论】:

  • 它可能不是最有效的计算选择,但请查看在任何给定时间您的计算机上正在运行的进程数。
  • 它们同时运行但不并行运行
  • 当您需要真正的并行性以实现更高的性能时,您最终会进行时间共享。
  • @AnttiHaapala 你说的并发但不并行到底是什么意思
  • @GillesGouaillardet 有道理,我也想通了。您是否有任何链接或文章我可以跟进以深入了解这里发生的事情。非常感谢。

标签: c parallel-processing compilation mpi mpich


【解决方案1】:

在 OpenMPI 的情况下,如果运行的进程数大于处理器数(即发生超额订阅时),OpenMPI 开始以 degraded 模式运行 MPI 进程。在降级模式下运行意味着将其处理器让给其他 MPI 进程以取得进展(即发生时间共享)。 mpi_yield_when_idle 可以设置为 0 以显式地使模式 aggressive,在这种情况下 MPI 进程不会主动将处理器交给其他进程。

here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 2012-03-18
    • 2013-11-30
    相关资源
    最近更新 更多