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

一、交互式提交任务

pkurun
pkurun-cns  1   20  ./mega.sh       # cn-short 节点
pkurun-cnlong  1  20  ./mega.sh     # cn-long 节点
pkubatch
pkubatch  -J sle044735  -p cn-short   -N 1 --ntasks-per-node=1  -o sle_%j.out   -e  sle_%j.err  -A   gao_gl   -qos=gaocns    ./mybash.sh

pkubatch  -J  TMS1    -p  cn-long   -N  1  --ntasks-per-node=20   -o  sle_%j.out  -e megacc_%j.err  -A  leili_g1  --qos=leilicnl   ./mega.sh

二、脚本提交任务

并行计算,使用了openMPI 编译生成可执行程序fast,需要运行在4个节点 48个进程。生成脚本sub.sh如下所示:

#!/bin/bash
#PKUBATCH     -J  TMS1
#PKUBATCH     -p cn-long
#PKUBATCH     -N 4 
#PKUBATCH     --ntasks-per-node=12
#PKUBATCH     -o TMS1.out
#PKUBATCH     -e TMS1.err
#PKUBATCH     --no-requeue
#PKUBATCH     -A   leili_g1
#PKUBATCH      --qos=leilicnl

source ~/.bash_profile
srun  --mpi=pmi2  ./fast.mpi

根据该脚本(chmod 修改该脚本可执行权限 chmod 775 sub.sh),提交批处理命令如下:
pkubatch ./sub.sh

单节点计算,以下为bla.sh内容,注意脚本里可不用使用srun。

#!/bin/bash
#PKUBATCH -J At
#PKUBATCH -p cn-short
#PKUBATCH -N 1
#PKUBATCH --ntasks-per-node=8
#PKUBATCH -o new_%j.out
#PKUBATCH -e new_%j.err
#PKUBATCH --no-requeue
#SBATCH  -A leili_g1
#SBATCH  --qos=leilicns
 
cd /home/leili_pkuhpc/lustre1/zwg/test2
blastp -query mytest.fasta -db blastdb -outfmt 6 -evalue 1  -out At.blast

三、sbatch 命令

sbatch [OPTIONS(0)...] [ : [OPTIONS(n)...]] script(0) [args(0)...]

常用参含义
--help 显示sbatch命令的使用帮助信息;
-A <account> 指定计费账户;
-D, --chdir=<directory> 指定工作目录;
--get-user-env 获取用户的环境变量;
--gres=<list> 使用gpu这类资源,如申请两块gpu则--gres=gpu:2
-J, --job-name=<jobname> 指定该作业的作业名;
--mail-type=<type> 指定状态发生时,发送邮件通知,有效种类为(NONE, BEGIN, END, FAIL, REQUEUE, ALL);
--mail-user=<user> 发送给对应邮箱;
-n, --ntasks=<number> sbatch并不会执行任务,当需要申请相应的资源来运行脚本,默认情况下
一个任务一个核心,--cpus-per-task参数可以修改该默认值;
-c, --cpus-per-task=<ncpus> 每个任务所需要的核心数,默认为1;
--ntasks-per-node=<ntasks> 每个节点的任务数,--ntasks参数的优先级高于该参数,如果使用--ntasks
这个参数,那么将会变为每个节点最多运行的任务数;
-o, --output=<filename pattern> 输出文件,作业脚本中的输出将会输出到该文件;
-p, --partition=<partition_names> 将作业提交到对应分区;
-q, --qos=<qos> 指定QOS;
-t, --time=<time> 设置限定时间;

案例1、
提交一个作业,该作业提交到cn-short的分区上,提交的优先级为low,共使用两个节点,每个节点4个核心,作业名为MyFirstJob,以下为脚本的内容,脚本文件名为job.sh。

#!/bin/bash
#SBATCH  -o   jib.%j.out
#SBATCH  --partition=cn-short
#SBATCH  -qos=low
#SBATCH  -A   leili_hpc
#SBATCH  -J  MyFirstJob
#SBATCH  --get-user-env
#SBATCH   -nodes=2                      # 申请的节点数为2       
#SBATCH  --ntasks-per-node=4     # 4个核心
#SBATCH  --mail-type=end
#SBATCH  --mail-user=xxx@pku.edu.cn
#SBATCH  --time=72:00:00

 
 **注意 **
--partion=cn-short   等价于-p  cn-short
分区可选 cn-short  和 cn-long





最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容