网站首页|E--MAIL : yongchun.liu@aero-hpc.com.cn

地址:陕西省西咸新区沣西新城西部云谷D1楼

slurm 调度系统任务提交

2021-03-10 17:02 作者:系统管理员

Slurm提交作业有3种模式,分别为交互模式,批处理模式,分配模式,这三种方式只是用户使用方式的区别,在管理,调度,记账时同等对待。

Slurm 部分应用提交任务脚本模板路径:

/public/software/slurm_script

 

1、交互模式

命令srun

简介:交互式作业提交,提交命令后,等待作业执行完成之后返回命令行窗口。

示例

slurm 调度系统任务提交(图2) 

 

2、批处理模式

命令sbatch

简介

批处理作业是指用户编写作业脚本,指定资源需求约束,提交后台执行作业。 提交批处理作业的命令为 sbatch,用户提交命令即返回命令行窗口,但此时作业在进入调度状态,在资源满足要求时,分配完计算结点之后,系统将在所分配的第一个计算结点(而不是登录结点)上加载执行用户的作业脚本。批处理作业的脚本为一个文本文件,脚本第一行以“#!”字符开头,并制定脚本文件的解释程序,如 shbash。由于计算节点为精简环境,只提供 sh  bash 的默认支持。
计算开始后,工作目录中会生成以 slurm 开头的.out 文件为输出文件。

#!/bin/bash

#SBATCH -J vasp                           #指定作业名称

#SBATCH --ntasks=640                      #此次作业所需总核数

#SBATCH --nodes=10                        #作业所需节点数

#SBATCH --ntasks-per-node=64             #每个节点分配核数   

#SBATCH -p low                             #low分区进行计算 

#BATCH --output=%j.log                    #设置计算输出日志文件    

 

cd  $SLURM_SUBMIT_DIR    #进入计算目录,也可不写

 

source /public/software/profile.d/compiler_intel-compiler-2017.5.239.sh  #加载环境变量

source /public/software/profile.d/mpi_intelmpi-2017.4.239.sh

 

srun hostname -s | sort -n |uniq>nodelist      #设置计算host列表

 

mpirun    -np  $SLURM_NPROCS   -machinefile  nodelist      vasp_std     


#使用mpirun计算

 

示例以脚本方式提交

[sugon@gpunode1 ~]$ sbatch sleep.job

Submitted batch job 19

 

[sugon@gpunode1 ~]$ cat sleep.job

#!/bin/bash

#SBATCH -J sleep

#SBATCH -p debug

#SBATCH --time=1

#SBATCH -N 2

#SBATCH -n 2

#SBATCH -o logs/%j.sleep

#SBATCH -e logs/%j.sleep

 

echo ${SLURM_JOB_NODELIST}

echo run.sh start on $(date)

sleep 100

echo run.sh end on $(date)

 

[sugon@gpunode1 logs]$ cat 19.sleep

gpunode[1-2]

run.sh start on 2017 08 10 星期四 11:00:59 CST

run.sh end on 2017 08 10 星期四 11:02:39 CST

 

示例2通过标准输入将批处理脚本传递给sbatch

[sugon@gpunode1 logs]$ sbatch <<EOF

> #!/bin/bash

> sleep 10

> EOF

Submitted batch job 20

EOF的解释

“<< EOF EOF”的作用是在命令执行过程中用户自定义输入,它类似于起到一个临时文件的作用,只是比使用文件更方便灵活。

3、分配模式

命令salloc

简介

结点资源抢占命令。该命令支持用户在提交作业前,抢占所需计算资源(此时开始计算所用机时)。

执行分为四步

提交资源分配请求,作业排队等待资源分配,作业开始运行,开始计费;

执行用户指定的命令;

命令执行结束;

退出作业释放资源,作业停止运行,停止计费。

示例

slurm 调度系统任务提交(图3)