MPI_Send(100):无效排名值为 1,但必须为非负且小于 1

2023-12-02

我正在自学Python中的MPI。我刚刚从基本文档开始MPI4py。我从这段代码开始:

from mpi4py import MPI

comm = MPI.COMM_WORLD
rank = comm.Get_rank()

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)

当我运行这个程序时,我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "MPI/Comm.pyx", line 1175, in mpi4py.MPI.Comm.send (src/mpi4py.MPI.c:106424)
  File "MPI/msgpickle.pxi", line 211, in mpi4py.MPI.PyMPI_send (src/mpi4py.MPI.c:42120)
mpi4py.MPI.Exception: Invalid rank, error stack:
MPI_Send(174): MPI_Send(buf=0x10e137554, 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

我没有找到解决这个问题的任何可行的解决方案。我在用Mac OS X El Capitan.

提前致谢!


该计划抱怨说1不是有效的排名MPI_Send():这意味着您的程序正在单个进程上运行。

您是否使用以下方式运行它python main.py?尝试使用mpirun -np 2 python main.py, where 2是进程数。后者是运行 mpi 程序的常用方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MPI_Send(100):无效排名值为 1,但必须为非负且小于 1 的相关文章

随机推荐