问题描述
今天在跟着mpi4py简单使用教程执行以下代码时:
from mpi4py import MPI
import numpy as np
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()
if rank == 0:
data = range(10)
comm.send(data, dest=1, tag=11)
print("process {} send {}...".format(rank, data))
else:
data = comm.recv(source=0, tag=11)
print("process {} recv {}...".format(rank, data))
出现了如题目中描述的错误:
很不理解,于是去查找相关资料。
解决方案
参考以下链接中描述的解决方案mpi4py - MPI_Send(100): Invalid rank has value 1 but must be nonnegative and less than 1 - Stack Overflow
在命令行中用以下方式运行代码,不再报错并产生正确的输出:
# main.py是你的文件名称
mpirun -np 2 python main.py
注意:如果你是以root身份运行的该代码,应当运行以下命令:
# main.py是你的文件名称
mpirun -np 2 --allow-run-as-root python main.py
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)