mpi4py.MPI.COMM_WORLD.Get_size失败——mpiexec and python mpi4py gives rank 0 and size 1 —— MPI.COMM_WORLD.Get_size() is always resulting '1'
参考:
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编译环境和运行环境确实不同。
本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注处,如有侵权请与博主联系。
如果未特殊标注则为原创,遵循 CC 4.0 BY-SA 版权协议。
posted on 2023-06-03 09:26 Angry_Panda 阅读(151) 评论(0) 收藏 举报
浙公网安备 33010602011771号