Mpi /usr/bin/modulecmd:没有这样的文件或目录

Mpi /usr/bin/modulecmd:没有这样的文件或目录,mpi,slurm,sbatch,environment-modules,Mpi,Slurm,Sbatch,Environment Modules,我正在使用sbatch提交我的作业。 命令行mpirun--version给出: 用于Linux*操作系统的英特尔(R)MPI库,版本5.0构建20140507 版权所有(C)2003-2014,英特尔公司。版权所有 因此,我认为我正在与英特尔mpi合作。 接下来,我会这样写我的脚本: #!/bin/bash #SBATCH --ntask=4 #SBATCH -t 00:10:00 . ~/.bash_profile module load intel mpirun mycc mycc是

我正在使用sbatch提交我的作业。
命令行
mpirun--version
给出:

用于Linux*操作系统的英特尔(R)MPI库,版本5.0构建20140507
版权所有(C)2003-2014,英特尔公司。版权所有

因此,我认为我正在与英特尔mpi合作。
接下来,我会这样写我的脚本:

#!/bin/bash
#SBATCH --ntask=4
#SBATCH -t 00:10:00

. ~/.bash_profile

module load intel
mpirun mycc
mycc是我用mpicc编译源文件后得到的可执行文件。
然后我使用命令sbatch-p partitionname-J myjob script.sh,我的作业失败,exitcode 127:0。slurm-jobid.out文件说明(将设置区域设置警告放在一边):

/usr/share/Modules/init/sh:line 2:/usr/bin/modulecmd:没有这样的文件或目录 /tmp/slurmd/job252624/slurm_scirpt:第10行:找不到mpirun:命令

但是我已经检查过了,并且/usr/bin/modulecmd文件确实存在。
欢迎提出任何建议

编辑
我也问了这个问题

我已删除源语句并加载一个模块。
在提交作业之前,我尝试在登录节点上加载模块。但有点不对劲。它说:

moduleCmd_Lad.c(204):错误:105:找不到“英特尔”的modulefile

我使用
module avail
命令查看哪些模块可用:

---------/usr/共享/模块/模块文件-------------------

dot模块信息mpich2-x86_64 use.won

模块cvs模块null

---------/etc/模块文件---------------------------------

compat-openmpi-psm-x86_64 compat-openmpi-x86_64

请原谅我的格式混乱

已解决

问题终于解决了。我的最终script.sh如下所示:

#!/bin/bash
srun -p partitionname -n 4 -t 00:10:00 mycc

然后使用命令sbatch-p partitionname-J myjob script.sh提交作业。

显然/usr/bin/modulecmd不存在于所有计算节点中。请确保它存在于所有计算节点中,然后重试


此外,如果/home由所有节点共享,则不需要为bash_配置文件提供源代码,因为Slurm默认情况下会将所有环境导出到作业中。

是否检查登录节点或计算节点上是否存在该配置文件?我怀疑脚本是在slurm分配给您的第一个节点上执行的,因此如果那里没有安装
module
命令,您将收到此错误消息…显然不是Warwick学生:^)。您将在超级用户交换上找到更多帮助,因为这比编程更与系统管理相关:)。@Gilles您能更具体一些吗?我的意思是,如何检查登录节点或计算节点上是否存在该文件?我原以为所有文件都存储在存储节点上。@Samidamaru我将在那里回答我的问题。:)@Samindamaru超级用户的问题是没有slurm标签,所以很多用户来这里询问,由于Stack Overflow中有更多的答案,您可以给出一些关于如何查看文件是否存在于计算节点上的说明吗?只需使用相同的sbatch执行
ls/usr/bin/modulecmd
输出消息说:
ls:cannot access/usr/bin/modulecmd:没有这样的文件或目录/tmp/slurmd/jobid/slurm_脚本:/usr/bin/modulecmd:没有这样的文件或目录/tmp/slurmd/jobid/slurm_脚本:第11行:找不到mpirun:command
。那么我该怎么办?我知道集群将计算和存储分开,其中三个是计算节点和存储设备,它们相互连接。文件系统为所有节点提供全局视图。这就是我学到的。但我不太明白,我想我一定是误解了,被困在某个地方了。计算节点中没有可用的模块。您可以做的是在提交作业之前加载模块,并联系集群管理员,让他们在所有计算节点上安装模块。如果在登录节点上加载模块,则应删除
~/。bash_profile
模块加载英特尔
命令