我正在尝试在 boost.mpi 中为 python 使用 mpi.gather,如下所示。
import mpi
print(mpi.rank)
mpi.gather(value=True, root=0)
当我使用以下命令运行程序时,
mpiexec -n 3 python mpi_test.py
输出是
2
1
0
(数字的顺序可能会改变。)
但是,当我将value
mpi.gather 中的参数设置为布尔类型以外的其他内容时,它会卡住。你知道为什么会这样吗?
我使用 mpich2(版本 3.0.4)、boost 1.61.0 和 python 3.5.1。提前致谢。
更新:不起作用的代码如下所示:
import mpi
print(mpi.rank)
mpi.gather(value='!', root=0)
我用 运行了上面的程序mpirun -n 3 python mpi_test.py
,得到了以下结果(同样,数字的顺序可能不同),
2
1
该程序也应该输出 0 但它卡住了。我尝试了几个要使用的进程,但它总是卡在未打印的根级别上。
似乎程序仅在value
设置为False
或时才结束True
。