OpenMPI运行报错“No protocol specified”且挂起无响应如何解决?
问题原因
该错误是OpenMPI 4.0.0~4.0.3版本的已知缺陷,MPI初始化阶段会默认尝试连接X11服务器读取显示相关配置,当当前用户没有X11访问权限(如sudo运行、远程SSH未开X转发、DISPLAY变量配置错误)时,就会抛出No protocol specified错误,同时内部连接重试逻辑会导致进程无响应挂起。
可行解决方案
临时验证方案:运行程序前清空DISPLAY环境变量,跳过X11连接逻辑即可正常运行:
# 清空X11显示变量 export DISPLAY= # 直接运行二进制 ./a.out # 或通过mpirun运行 mpirun -n <进程数> ./a.out用户级永久配置方案:不需要每次手动设置变量,在用户目录下新增OpenMPI MCA配置即可全局生效:
- 新建配置目录(若不存在):
mkdir -p ~/.openmpi - 编辑配置文件:
nano ~/.openmpi/mca-params.conf - 写入以下两行内容后保存退出:
plm_rsh_agent = ssh orte_base_help_aggregate = 0
- 新建配置目录(若不存在):
系统级彻底修复方案:Ubuntu 20.04官方源已推送针对该问题的补丁包,直接升级系统内置OpenMPI组件即可:
sudo apt update sudo apt install --only-upgrade openmpi-bin libopenmpi-dev
内容的提问来源于stack exchange,提问作者drjrm3
相关产品推荐
相关产品推荐

