【问题标题】:Running mpirun with 2 cores/4 threads使用 2 核/4 线程运行 mpirun
【发布时间】:2019-10-17 14:02:42
【问题描述】:

我正在使用 mpirun 调用一个 openMDAO 代码,该代码使用一个包含 4 个子系统的并行组。我可以成功地从终端调用代码如下。

mpirun -n 2 python modified_objective.py

但是,由于我的电脑有 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

但这似乎不起作用。还有其他方法可以使用所有 4 个内核吗?

谢谢

【问题讨论】:

  • 如果您使用 Open MPI,请尝试 mpirun --use-hwthread-cpus ... 以获得 1 个线程 = 1 个插槽(默认为 1 个核心 = 1 个插槽)。

标签: python mpi


【解决方案1】:

解决方案取决于您拥有的特定 MPI 实现。这根本不是 OpenMDAO 问题,而是您的 MPI 库的问题。您似乎已经看到了,因为您正在尝试提供一个主机文件。

我认为你只是有错误的选择。试试:

mpiexec -np 4 -H localhost --hostfile rankfile python modified_objective.py

【讨论】:

    猜你喜欢
    • 2020-07-15
    • 1970-01-01
    • 2013-03-12
    • 2021-01-11
    • 1970-01-01
    • 2020-07-25
    • 2019-06-24
    • 2014-02-06
    • 1970-01-01
    相关资源
    最近更新 更多