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

 

posted on   Angry_Panda  阅读(106)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 20250116 支付宝出现重大事故 有感
· 一个基于 Roslyn 和 AvalonEdit 的跨平台 C# 编辑器
· 推荐一款非常好用的在线 SSH 管理工具
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· .NET周刊【1月第1期 2025-01-05】
历史上的今天:
2021-06-03 【转载】 集成学习
2017-06-03 转载 ------ 三次指数平滑法
2017-06-03 转载:二次指数平滑法求预测值的Java代码
2017-06-03 转载: 通过反射操作类的私有属性
2017-06-03 转载: 二次指数平滑法摘抄(原理详细)
2017-06-03 转载: Linux 操作系统挂起、休眠、关机相关命令

导航

< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示