我希望在多个节点上运行批处理脚本文件。脚本文件包括一个由多个作业组成的数组。我希望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 84
到mpirun
。它将从Slurm分配中获取。
您得到的错误消息来自这样一个事实,即Slurm每个节点必须至少有一个任务。因此,如果您请求1个任务和3个节点,它会被混淆。