小编Eyo*_*aye的帖子

mpi4py:在生成的进程之间进行通信

我有一个进程运行一个名为 t1.py 的程序,该程序产生 3 个其他进程,所有这些进程都运行 t2.py。我想将等级为 0 的衍生进程的值广播到其他两个衍生进程。但是,当调用 bcast 时,程序会阻塞。知道为什么会这样吗?我该如何解决?

t1.py

from mpi4py import MPI
import sys

sub_comm = MPI.COMM_SELF.Spawn(sys.executable, args=['t2.py'], maxprocs=3)
print 'hi'
Run Code Online (Sandbox Code Playgroud)

t2.py

from mpi4py import MPI

comm = MPI.Comm.Get_Parent()

print 'ho ', comm.Get_rank()
a = comm.bcast(comm.Get_rank(), root=0)
print a
Run Code Online (Sandbox Code Playgroud)

输出

hi
ho  2
ho  0
ho  1
Run Code Online (Sandbox Code Playgroud)

python mpi python-2.7 mpi4py

2
推荐指数
1
解决办法
1326
查看次数

标签 统计

mpi ×1

mpi4py ×1

python ×1

python-2.7 ×1