【转】qsub命令
(2014-08-05 15:25:32)
标签:
qsub |
分类: Linux |
来自:http://www.cnblogs.com/overmore/archive/2012/05/29/2524824.html
用户通过qsub命令来向系统提交任务,有两种方式提交:脚本方式和命令行方式。(一般情况下,不允许root用户使用qsub命令提交作业)。下面先讲一下用这两种方式提交作业的过程。
脚本方式提交
用户将需要执行的程序或命令写入脚本中,再加入一些必要或者可选的语句,就可以通脚本方式提交。脚本提交比较方便,用户可以用最简单的文字编辑器(例如
vi)编写一个脚本,然后使用 qsub 命令提交该脚本,pbs
会按照脚本内容执行相应的任务。脚本提交的不足之处就是需要用户执行任务前编写脚本。
脚本方式提交任务的一般格式为:qsub [script_name],script_name
是任务脚本的名称。
下面介绍 pbs 任务脚本的编写方法。
pbs 任务脚本包括三部分:
arch 所需要的系统结构,只用在资源块中 -l arch=linux
cput 任务的所有进程拥有的最大 cpu 执行时间 -l cput=1:00:00
file 任务能够创建的文件的大小 -l file=45mb
host 指定执行主机的名称 -l nodes=X:host 分配 X个主机名称 中含有
host的执行节点
mem 任务的所有进程能够分配到的最大物理内存数 -l mem=100mb
ncpus 请求的 cpu数 -l ncup=5
nice 任务运行时的 nice 优先级值 -l nice=3
pcput 任务的任何一个进程拥有的最大 cpu 执行时间 -l pcput=1:00:00
pmem 任务的任何一个进程能够分配到的最大物理内存数 -l pmem=45mb
pvmem 任务的任何一个进程能够使用的虚拟内存的最大数 -l pvmem=100mb
vmem 任务的所有并发进程能够使用的最大虚存数 -l pvmem=100mb
walltime 任务可以处于运行态的最大 wall-clock 时间 -l
walltime=1:00:00
custom resources 用户自定义资源
最常用的几种资源是:walltime, ncpus, mem, host。其它可以不用太关心。
a、资源块方式:资源块是将任务所需的资源作为一个整体,这个整体中说明了所需要的各种资源的数目。其格式为:-l
select=[N:]chunk[+[N:]chunk…],如qsub –l
select=2:ncpus=3:mem=4gb:arch=linux
,select=2表示需要2个这样的资源块,一个资源块包括3个cpu,4gb的内存,系统结构要求是linux,即总共需要6个cpu,8gb的内存。再如:-l
select=2:ncpus=1:mem=10GB+3:ncpus=2:mem=8GB:arch=solaris注意中间的+号,是两个资源块的分隔符
b、请求全任务(job-wide)资源:格式为
–l
任务(程序或命令):可以是用户程序(如C程序),也可以是系统命令
下面是一个完整的任务脚本例子,脚本名为 mytask:
第 1 行说明所用的 shell;第 2 至5 行是 pbs 指示语句,设置了任务的一些属性,并请求了资源;第 6
至8行是要执行的命令及任务。
编写完脚本后,使用 qsub 命令提交脚本,在 shell下输入:
后敲回车。
系统会输出一个任务标识符:sequence-number.servername,如
220.cnode01。sequence-number是任务编号,后面需要用这个号查看任务的执行状态,ervername
是 pbs server的名称。
命令行方式提交
命令行方式提交不用写脚本,用户可以直接从命令行输入。输入的内容基本上和在脚本中输入的相同。其基本格式如下:
qsub
[directives]
[tasks]
ctrl-D
对于上面用脚本方式提交的任务,用命令行方式提交的格式如下:
注:以命令行方式提交任务时,这些命令选项都要以 pbs
指示语句的格式给出,即选项之前要加前缀#PBS。
任务提交后,用户如果要知道任务的当前运行状态,可以通过 qstat 命令查询。qstat
命令的常用选项有:
无选项:当 qstat 命令不带任何选项时,以默认方式显示任务信息,例如
其中,Job id 是任务的标识符,Name 是任务名称,User是任务所有者,Time Use 是CPU使用时间,S
是任务当前状态(本例中 R表示正在运行),Queue表示任务所在队列。任务的状态如下:
再举一例,使用-a 选项指定任务开始执行时间:
此时任务状态(S)显示 W,表示任务正在等待执行时间的到来