使用2核/ 4线程运行mpirun

时间:2019-06-01 01:33:44

标签: python mpi

我正在使用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

但这似乎不起作用。我可以使用所有4个内核吗?

谢谢

1 个答案:

答案 0 :(得分:0)

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

我认为您的选择错误。试试:

with open("bytesfile", "rb") as infile:
    str = base64.b85encode(imageFile.read())

with open("bytesfile", "rb") as infile:
    str2 = json.dumps(list(infile.read()))