mpirun - 没有足够的可用插槽

mpirun - not enough slots available

通常当我使用 mpi运行 时,我可以 "overload" 它,使用比我计算机上实际使用的处理器更多的处理器。比如我的四核mac,我可以运行mpirun -np 29 python -c "print 'hey'"没问题。我现在在另一个 machine 上,它抛出以下错误:

$ 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.
--------------------------------------------------------------------------

为什么 "overclocking" mpi运行 不能在这里工作?有没有一种方法可以克服此错误消息并成功 运行 使用比可用处理器更多的处理器?

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

首先创建一个包含

的hostfile(命名为hostfile)
localhost slots=25

简单 运行 您的应用程序喜欢

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

显然可以使用 mpirun 的“--oversubscribe”选项实现超额订阅 - 运行 torque/maui

对我有用