mpirun - 没有足够的插槽可用

时间:2016-02-29 16:32:21

标签: mpi openmpi hpc

通常当我使用mpirun时,我可以“超载”它,使用的处理器比我的计算机上的处理器多。例如,在我的四核mac上,我可以运行mpirun -np 29 python -c "print 'hey'"没问题。我现在在另一台机器上,这引发了以下错误:

$ mpirun -np 25 python -c "print 'hey'"
--------------------------------------------------------------------------
There are not enough slots available in the system to satisfy the 25 slots 
that were requested by the application:
  python

Either request fewer slots for your application, or make more slots available
for use.
--------------------------------------------------------------------------

为什么不“超频”mpirun在这里工作?有没有办法可以克服此错误消息并成功运行多于可用的处理器?

2 个答案:

答案 0 :(得分:29)

显然可以使用" - 超额订阅"来实现超额订购。使用mpirun的选项 - 使用运行扭矩/ maui为我做了诀窍

答案 1 :(得分:11)

根据https://www.open-mpi.org/faq/?category=running#oversubscribing,您可以使用主机文件超额订阅您的节点。在继续之前,请注意这样会严重降低节点的性能。此外,如果用于运行应用程序的系统使用队列系统,则可能无效。

首先创建一个包含

的主机文件(名为hostfile)
localhost slots=25

简单地运行您的应用程序,如

mpirun --hostfile hostfile -np 25 python -c "print 'hey'"