一、交互式提交任务
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