参考:
https://stackoverflow.com/questions/29264640/mpiexec-and-python-mpi4py-gives-rank-0-and-size-1
===========================================
运行代码:
import mpi4py.MPI as MPI comm = MPI.COMM_WORLD comm_rank = comm.Get_rank() comm_size = comm.Get_size() print(comm) print(comm_rank) print(comm_size)
运行结果:
运行结果十分的诡异,不论启动多少进程,每个启动的进程都无法获得所有的进程数,也就是说MPI的进程之间无法通信,而这就说明MPI出问题了,但是问题出在哪里却十分诡异。如果说MPI没有安装成功那么MPI4PY并没有报错,如果安装MPI成功又和实际运行情况对不上。后来在外网上找到了答案:
https://stackoverflow.com/questions/29264640/mpiexec-and-python-mpi4py-gives-rank-0-and-size-1
也就是说mpi4py的编译时的mpi环境与运行时的mpi环境不同,于是才会出现这样的问题。
通过python查询当前mpi4py的编译环境:
import mpi4py
mpi4py.get_config()
发现这个MPI编译环境和运行环境确实不同。
标签:Get,rank,MPI,comm,size,mpi4py From: https://www.cnblogs.com/devilmaycry812839668/p/17453314.html