跳转至

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.e179blast.o179

查看作业

使用qstat命令查看作业状态。

$ qstat 
Job id            Name             User              Time Use S Queue
----------------  ---------------- ----------------  -------- - -----
8.master          blast            username             00:00:00 R workq  
qstat还有一些可选参数,

-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
本文阅读量  次
本站总访问量  次