Ubuntu 22.04 上的 MPI 问题

Ubuntu 22.04 上的 MPI 问题

我不确定发生了什么,我认为当我第一次安装 ubuntu 22.04 时 MPI 运行良好。然后我发现我也可以安装 ifortran(不确定这是否影响了某些东西)和 mkl。

但是,我现在发现的问题是,当我尝试运行代码时收到此消息:

  • $ mpirun -n 2 测试并行.x

[proxy:0:0@Dedalus] HYD_spawn (../../../../../src/pm/i_hydra/libhydra/spawn/intel/hydra_spawn.c:151): 文件 testparalel.x 上的 execvp 错误(没有此文件或目录)

在我安装 ifort 和 mkl 之前,这个方法有效,不确定是否与此有关。如果我在程序前使用 ./,我会得到:

*$ mpirun -n 2./testparalel.x

iam= 0 nproc= 1

iam= 0 nproc= 1

代码作为不同的程序在不同的处理器上运行,而不是作为单个 MPI 程序运行(这就是为什么“iam”变量在两种情况下都为零,并且 nproc =1,而不是 2)。

在我安装 intel fortran 编译器之前,MPI 运行良好(mpifort 无论如何都会调用 gfortran)。此外,我认为 intel 编译器存在一些问题,因为当我尝试运行该程序时,它似乎要查找的 hydra 目录指向 intel。

知道会发生什么事吗?

我留下了测试代码,以便您可以检查。问题不在于代码,我知道这一点是因为在安装 intel fortran 编译器之前,我已经用 gfortran 测试过它。我认为问题起源于安装 ifort 时。

program test

include 'mpif.h'

call mpi_init(ierr)
call mpi_comm_rank(mpi_comm_world,iam,ierr)
call mpi_comm_size(mpi_comm_world,nproc,ierr)

print*,'iam=',iam,'  nproc=',nproc

call mpi_finalize(ierr)

stop
end

不,这不是问题。如前所述,当我执行以下操作时,程序将运行:

$:mpirun -n 2./testparalel.x

iam= 0 nproc= 1

iam= 0 nproc= 1

但是 MPI 运行不正确,因为如果运行正确,它应该返回

iam=0 nproc=2

我=1 NPROC=2

等等。它似乎在执行相同的程序,在每个处理器上重复,并且并非全部在同一个 MPI 环境中发生。我不知道您是否熟悉 MPI,如果您熟悉,您应该明白我在说什么。

答案1

execvp error on file testparalel.x (No such file or directory)似乎很清楚:“testparalel.x”不存在。也许在“parallel”这个词中再加一个“l”?

相关内容