You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言MPI程序在Cygwin中mpirun运行报错求助

Cygwin下MPI程序编译正常但运行报错的解决方法

问题描述

在Cygwin控制台环境下编译C语言MPI Hello World程序,使用mpicc file.c -o file编译无报错,但执行mpirun -np 2 ./file时出现以下错误:

[DESKTOP-3F9P53V:01959] [[INVALID],INVALID] FORCE-TERMINATE AT Not found:-13 - error /pub/devel/openmpi/v4.0/openmpi-4.1.5-1.x86_64/src/openmpi-4.1.5/orte/mca/plm/rsh/plm_rsh_component.c(335)

当前配置:

  • 已安装Cygwin相关包(见附图)
  • 已下载MinGW并添加至用户环境变量
  • Cygwin的bin目录已添加至环境变量

解决步骤

1. 安装rsh/SSH相关依赖包

错误提示来自OpenMPI的rsh组件,说明Cygwin缺少远程登录相关工具,需安装以下包:

  • rsh
  • rsh-server
  • openssh

打开Cygwin的setup.exe,搜索上述包并选择安装,完成后重启Cygwin终端。

2. 配置本地SSH免密登录

OpenMPI需要无密码访问本地节点来启动进程,执行以下步骤:

  1. 在Cygwin终端生成SSH密钥:
    ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
    
  2. 将公钥添加到授权列表:
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
    
  3. 测试本地SSH登录:
    ssh localhost
    
    确保无需输入密码即可登录,若成功则退出登录。

3. 指定OpenMPI进程启动代理

运行程序时,显式指定使用SSH作为进程启动代理:

mpirun --mca plm rsh --mca plm_rsh_agent ssh -np 2 ./file

或者使用isolated模式(仅适用于单节点测试):

mpirun --mca plm isolated -np 2 ./file

4. 排查环境变量冲突

由于同时配置了MinGW和Cygwin,可能存在工具链冲突:

  • 确保Cygwin的bin目录在环境变量中的优先级高于MinGW的目录
  • 或者在Cygwin终端中临时移除MinGW的环境变量,再运行MPI程序

5. 验证OpenMPI包完整性

确认已安装完整的OpenMPI组件:

  • openmpi(核心运行库)
  • openmpi-devel(开发头文件和编译工具)
  • openmpi-libs(依赖库)

若缺失,通过Cygwin setup.exe补充安装,避免仅安装部分组件导致的运行错误。

内容的提问来源于stack exchange,提问作者dacian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 01:50:08