mpi4py.MPI.COMM_WORLD.Get_size失败——mpiexec and python mpi4py gives rank 0 and size 1

发布时间 2023-06-03 09:37:37作者: Death_Knight

参考:

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编译环境和运行环境确实不同。