通常当我使用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在这里工作?有没有办法可以克服此错误消息并成功运行多于可用的处理器?
答案 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'"