使用批处理脚本提交作业 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的主要内容,如果未能解决你的问题,请参考以下文章