mpirun 无法启动指定的应用程序,因为它无法访问或执行 R 中的可执行文件

问题描述 投票:0回答:1

我正在尝试在加拿大计算上运行 irace,当我使用 openmpi 模块时,它总是给我以下错误消息:

mpirun 无法启动指定的应用程序,因为它无法访问或执行可执行文件:

可执行文件:/scratch/irace/test.R

节点:niaXXXX

尝试启动进程等级 0 时。

我的bash脚本写好了

#!/bin/sh
#SBATCH --nodes=5
#SBATCH --ntasks-per-node=40
#SBATCH --mem=0
#SBATCH --mail-type=ALL
#SBATCH --output=/scratch/irace/irace-%j.out
#SBATCH --error=/scratch/irace/irace-%j.err

module load NiaEnv/2019b
module load gcc
module load r
module load openmpi

cd /scratch/irace
mpirun -np 5 /scratch/irace/test.R --parallel 4

当我提交这个作业脚本时,运行失败。然而,当我替换最后一条语句时

mpirun -np 5 /scratch/irace/test.R --parallel 4

附有声明

Rscript ./test.R 

,它会运行良好并给我结果。造成此问题的原因是什么?如何修复此错误并使其在加拿大计算上运行?

r package mpi openmpi niagara-4
1个回答
0
投票

考虑

cd /scratch/irace
mpirun -np 5 Rscript test.R --parallel 4

mpirun
需要一个可执行文件 (
Rscript
) 而不是 R 脚本(你的
test.R
)。

这也是

Rscript test.R
工作正常的原因,因为
Rscript
是解释您的
test.R
R 脚本的可执行文件。但根据您的 R 脚本,这可能只使用您请求的 5 个节点之一。

考虑使用

pbdMPI
包来简化 R 代码,并使用所有请求的节点进行计算(SPMD 样式),而不是让管理器在大部分时间处于空闲状态的管理器-工作器样式。

© www.soinside.com 2019 - 2024. All rights reserved.