pbs
提交作业¶
在PBS系统中,用户使用qsub命令提交用户程序。用户运行程序的命令及PBS环境变量设置组成PBS作业脚本,脚本格式如下:
注释,以"#"开头
PBS指令,以"#PBS"开头
以下为提交一个blastn任务的作业脚本(blast.pbs),该作业名称为blast,申请使用了一个计算节点、并在该节点上申请了10个cpu核,作业最大运行时间为7200小时,作业所在的队列为workq。
#PBS -N blast
#PBS -l nodes=1:ppn=10
#PBS –l walltime=7200:00:00
#PBS -q workq
#PBS -V
cd $PBS_O_WORKDIR
time blastn -query ./ZS97_cds.fa -out ZS97_cds -db ./MH63_cds -outfmt 6 -evalue 1e-5 -num_threads 10
qsub blast.pbs
该脚本每行解释如下:
-N 指定作业的名称,例如:
#PBS -N blast
-l 指定作业申请使用的系统资源,包括CPU资源、内存、运行时间,例如:
注意这三类资源分三行来写,不可写在一行。#PBS –l nodes=1:ppn=10 #PBS –l mem=10G #PBS –l walltime=7200:00:00
另外还可以指定作业提交的节点
#PBS –l nodes=node01:ppn=10
-q 指定作业所在的队列,用户只能在自己所对应的队列中提交任务,例如:
#PBS –q workq
-V 指定qsub命令的所有的环境变量都传递到批处理作业中
$PBS_O_WORKDIR
变量是PBS的系统变量,表示作业脚本所在的目录- 最后一行为用户的程序命令
作业运行完成后会产生文件名为:作业名.e作业ID
和 作业名.o作业ID
的两个文件,表示作业运行过程中产生的错误输出和标准输出,例如 blast.e179
,blast.o179
。
查看作业¶
使用qstat命令查看作业状态。
$ qstat
Job id Name User Time Use S Queue
---------------- ---------------- ---------------- -------- - -----
8.master blast username 00:00:00 R workq
-q 列出系统队列信息
-B 列出PBS服务器的相关信息
-Q 列出队列的一些限制信息
-an 列出队列中的所有作业及其分配的节点
-r 列出正在运行的作业
-f jobid 列出指定作业的信息
-Qf queue 列出指定队列的所有信息
-si 命令查看排队原因
qstat输出的信息中我们比较关心的是S那一列所对应的信息,表示作业所处的状态,各个字母所代表的意思如下(其中红色标记的为常见的作业状态)。
- B 只用于任务向量,表示任务向量已经开始执行
- E 任务在运行后退出,这种情况一般是作业有问题,需要修改后重新提交
- H 任务被服务器或用户或者管理员阻塞
- Q 任务正在排队中,等待被调度运行R 任务正在运行C 任务已完成
- S 任务被服务器挂起,由于一个更高优先级的任务需要当前任务的资源
- T 任务被转移到其它执行节点了
- U 由于服务器繁忙,任务被挂起
- W 任务在等待它所请求的执行时间的到来(qsub -a)
- X 只用于子任务,表示子任务完成
删除作业¶
如果用户要在作业提交后杀掉自己的作业,可以使用qdel命令,用法为 qdel jobid
,例如 qdel 197
删除作业后用qstat命令查看,作业处于C状态。非root用户只能删除自己提交的作业。
节点状态查看¶
使用pbsnodes -aSj
命令查看集群各节点资源使用状况,例如
$ pbsnodes -aSj
mem ncpus nmics ngpus
vnode state njobs run susp f/t f/t f/t f/t jobs
--------------- --------------- ------ ----- ------ ------------ ------- ------- ------- -------
node01 free 1 1 0 1tb/1tb 34/44 0/0 0/0 5
node02 free 0 0 0 1tb/1tb 52/52 0/0 0/0 --
node03 free 0 0 0 1tb/1tb 28/28 0/0 0/0 --
其它命令¶
- qselect 筛选作业
- -N 指定作业名字
- -s 指定状态
- -u 指定用户列表 如选择用户名为user_name正在排队的作业
qselect -u user_name -s Q
本站总访问量 次