cygwin中的C语言mpirun运行错误

byqmnocz  于 2023-05-06  发布在  其他
关注(0)|答案(1)|浏览(180)

我尝试使用cygwin环境(控制台)运行一个C语言MPI程序。编译过程工作正常,但当我试图运行输出程序时得到一个错误。我现在配置的是:

  • 我用的是cygwin环境,下面是安装的包:

  • 另外,我下载并添加了mingw到用户路径:

  • 正如你所看到的,cygwin bin也被添加到路径中

但是关于代码-一段简单的代码

#include "mpi.h"
#include <stdio.h>
int main( int argc, char *argv[] )
{
int rank, size;
MPI_Init( &argc, &argv );
MPI_Comm_size( MPI_COMM_WORLD, &size );
MPI_Comm_rank( MPI_COMM_WORLD, &rank );
printf( "Hello World! I am %d of %d\n", rank, size );
MPI_Finalize( );
return 0;
}

在cygwin控制台中,编译

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)

好像少了点什么,但我不知道是什么。我应该下载哪些其他软件包?我重新安装了openmpi包,但没有任何变化。或者问题来自于一些cygwin软件包的版本?(另外,作为一个提示,软件包的源代码是mirrors.kernel.org)

z9smfwbn

z9smfwbn1#

预期的行为是

$ mpicc -Wall prova.c -o prova

$ mpirun -n 2 ./prova
Hello World! I am 1 of 2
Hello World! I am 0 of 2

你的代码在我的系统上也能用在你的道路上不需要明。要清理PATH并在干净的Cygwin环境中测试程序,您可以将其运行为

$ PATH="/usr/bin/" mpirun -n 2 ./prova
Hello World! I am 0 of 2
Hello World! I am 1 of 2

您还可以使用检查包是否正确安装,以及是否缺少任何内容

$ cygcheck -c openmpi libopenmpi40
Cygwin Package Information
Package              Version        Status
libopenmpi40         4.1.5-1        OK
openmpi              4.1.5-1        OK

相关问题