我使用mpirun来调用一个openMDAO代码,它使用一个包含4个子系统的并行组。我可以成功地从终端调用代码,如下所示。
mpirun -n 2 python modified_objective.py然而,由于我的pc有2个核心/4个线程,我想使用所有4个线程来加速我的代码。但我得到一个错误如下:
系统中没有足够的插槽来满足应用程序请求的4个插槽: python。要么为您的应用程序请求更少的插槽,要么让更多的插槽可用。
我在网上发现的工作之一是使用文本文件,如下所示:
rank 0=localhost slot=0:0
rank 1=localhost slot=0:0
rank 2=localhost slot=0:1
rank 3=localhost slot=0:1然后按如下方式调用代码:
mpiexec -np 4 -H localhost -rf rankfile python modified_objective.py但这似乎行不通。还有其他方法我可以使用所有的四个核心吗?
谢谢
发布于 2019-06-01 02:31:10
解决方案取决于您所拥有的特定MPI实现。这根本不是一个OpenMDAO问题,而是MPI库的一个问题。您似乎已经看到了这一点,因为您正在尝试提供一个主机文件。
不过,我觉得你选择错了。尝试:
mpiexec -np 4 -H localhost --hostfile rankfile python modified_objective.pyhttps://stackoverflow.com/questions/56403246
复制相似问题