在多个节点上运行包含多个作业数组的批处理脚本



我希望在多个节点上运行批处理脚本文件。脚本文件包括一个由多个作业组成的数组。我希望slum在3个节点上运行每个作业。我试图给出这个代码,但诽谤者发出了这个警告:

Warning: can't run 1 processes on 3 nodes, setting nnodes to 1

脚本文件:

#!/bin/bash
#SBATCH --job-name=Littest
#SBATCH --nodes=3
#SBATCH --cpus-per-task=28
#SBATCH --ntasks=1
#SBATCH --out=output.txt
#SBATCH --exclude=node2,node11,node43,node44
#Jobfile=Li
declare -a arrK=(Li2.in Li6.in Li8.in)
module load intel
module load qe/6.5
for File in ${arrK[@]};
do
echo $File
mpirun -np 84 pw.x -i $File  > out.$File &
echo "1 Job Complete.Nice."
done
echo "all job complete"
wait

我如何解决这个问题

实现这一点的规范方法是

#SBATCH --ntasks=84
#SBATCH --ntasks-per-node=28
#SBATCH --cpus-per-task=1

并且不需要指定-np 84mpirun。它将从Slurm分配中获取。

您得到的错误消息来自这样一个事实,即Slurm每个节点必须至少有一个任务。因此,如果您请求1个任务和3个节点,它会被混淆。

相关内容

  • 没有找到相关文章

最新更新