mpi4py乘法过程而不是并行化

时间:2017-09-25 11:39:24

标签: python-2.7 mpi4py

我正在尝试并行运行现有代码。以前完成的并行化并完全由同事使用。在我的机器上,我遇到了一些我无法找到解决方案的问题。

我将问题缩小到一个简单的问题:

from mpi4py import MPI
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()
print "Rank: %i; size: %i"%(rank, size)

我使用mpirun -np 5 python test.py运行此操作并获得以下输出:

Rank: 0; size: 1
Rank: 0; size: 1
Rank: 0; size: 1
Rank: 0; size: 1
Rank: 0; size: 1

这基本上重复了代码,而不是考虑指定的进程数。

添加这些行会从我的主代码中产生相同的错误消息:

if rank == 0:
    data = {'a': 7, 'b': 3.14}
    comm.send(data, dest=1, tag=11)
elif rank == 1:
    data = comm.recv(source=0, tag=11)

出现以下错误消息:

mpi4py.MPI.Exception: Invalid rank, error stack:
MPI_Send(174): MPI_Send(buf=0x7f31851f3a54, count=25, MPI_BYTE, dest=1, tag=11, MPI_COMM_WORLD) failed
MPI_Send(100): Invalid rank has value 1 but must be nonnegative and less than 1

我发现了问题MPI_Send(100): Invalid rank has value 1 but must be nonnegative and less than 1,但我已经在接受的答案中使用了该命令,但找不到类似的内容。

我正在使用Python 2.7并在Centos 6.7上运行。提前谢谢!

0 个答案:

没有答案