使用批处理脚本提交作业 Slurm

Posted

技术标签:

【中文标题】使用批处理脚本提交作业 Slurm【英文标题】:Submitting Jobs Slurm with Batch Script 【发布时间】:2021-08-01 17:14:57 【问题描述】:

我正在尝试通过 SLURM 提交作业,但通过 sbatch 包含 SLURM 命令,因此使用批处理脚本。我创建的脚本确实提交了 slurm 作业,但还包括其他我不确定它们来自哪里的作业(见下文);特别是作业中的 .bat 和 .ext 。任何有关正在发生的事情的见解将不胜感激。

我创建了一个包含以下内容的测试脚本:

批处理脚本 (script.sh)

#! /bin/bash
#
#SBATCH --job-name="slurm_test"
#SBATCH --output=sbatch.out
#SBATCH --partition=xfr
#SBATCH --gres=tmpspace:2G
#SBATCH --time=00:05:00
#SBATCH --mem=2G
#SBATCH -e errlog.out
#SBATCH --mail-type=ALL
#SBATCH --mail-user=user_mail@gmail.com
#
echo "SLURM_JOBID="$SLURM_JOBID
echo "SLURM_JOB_NODELIST"=$SLURM_JOB_NODELIST
echo "SLURM_NNODES"=$SLURM_NNODES

echo "working directory = "$SLURM_SUBMIT_DIR

#
echo"Launch rsync"
echo $(hostname)
#hostname
echo $(date)
#date
#echo modulepath
echo $MODULEPATH
echo pythonpath
echo $PYTHONPATH
#dump the whole environment to a file
env >env.txt

echo "All Done!"
(base)

这就是我的工作的样子:

   JobID    JobName  Partition    Account  AllocCPUS      State ExitCode
------------ ---------- ---------- ---------- ---------- ---------- --------
5402068      slurm_test        xfr    gen          2  COMPLETED      0:0
5402068.bat+      batch               gen          2  COMPLETED      0:0
5402068.ext+     extern               gen          2  COMPLETED      0:0

我运行如下:

命令行

sbatch script.sh

我过去曾尝试过这样运行:

sbatch --time=00:05:00 --mem=2G -p xfr -gres=tmpspace:2G -o log.out -e errlog.out --mail-type=FAIL --mail-user=user_mail@gmail.com script.sh

【问题讨论】:

这里和batch-file没有关系,其实和Window的cmd有关系,看实际标签信息本身。 【参考方案1】:

每一行

5402068.bat+      batch               pmc_gen          2  COMPLETED      0:0
5402068.ext+     extern               pmc_gen          2  COMPLETED      0:0

对应于作业步骤(有关步骤和其他内容的详细信息,请参阅this question)。

通常使用srun 命令创建步骤,但在这里您没有使用它。因此,您将获得默认步骤:

batch,对应提交脚本本身的执行, extern,这是 Slurm 内部使用的一个步骤。当PrologFlag=contain时出现。

【讨论】:

以上是关于使用批处理脚本提交作业 Slurm的主要内容,如果未能解决你的问题,请参考以下文章

超算平台 SLURM 作业调度系统使用

解决 SLURM “sbatch:错误:批处理作业提交失败:请求的节点配置不可用”错误

如何使用 SLURM 提交并行作业步骤?

Slurm 作业数组提交严重未充分利用可用资源

如何使用 SLURM 停止计算节点?

在 Slurm 中,如何批量提交多个实验运行,并一个接一个地连续执行?