PBSQSUB任务管理命令.docx
《PBSQSUB任务管理命令.docx》由会员分享,可在线阅读,更多相关《PBSQSUB任务管理命令.docx(23页珍藏版)》请在冰点文库上搜索。
PBSQSUB任务管理命令
1、后台提交作业qsub
语法:
qsub[-adate_time][-Aaccount_string][-epath][-h][-I][-jjoin][-kkeep][-lresource_list][-mmail_options][-nNode_allocation_Method[-Lv1,[v2,[v3,[v4]]]]][-Muser_list][-Nname][-opath][-ppriority][-qpool][-ry|n][-uuser_list][-vvariable_list][-V][script]
参数:
script参数被省略时,该命令可以从标准输入获得脚本文件名。
-a间。
格式为[[[[CC]YY]MM]DD]hhmm[.SS]。
CC表示世纪,YY表示年(后两位数字),MM表示月(两位数字),DD表示天(两位数字),hh表示小时(两位数字),mm表示分(两位数字),SS表示秒(两位数字)。
如果DD指定的是未来日子,而未指定MM,则MM缺省值为当前月,否则,MM的缺省值为下个月。
如果hhmm指定的未来时间,而未指定DD,则DD的缺省值为当天,否则,DD的缺省值为明天。
如果提交作业时使用该选项,当指定时间还没到时,作业状态显示为”W”。
-e指定错误输出文件名,格式为[hostname:
]path_home。
Hostname是返回错误输出文件的主机名,path_home是错误输出文件的绝对路径,如果指定了相对路径,则相对用户的主目录。
不使用该选项时,缺省值是在用户主目录下,以“作业名.e作业ID”命名的文件
-o指定输出文件名,格式为[hostname:
]path_home。
缺省值是在用户主目录下,以“作业名.e作业ID”命名的文件
-h指定在提交作业时,设置用户级’u’挂起。
如果不指定,则设置挂起类型为’n’,即不挂起。
-I指定作业以交互方式运行。
-j指定合并错误输出和实际输出。
如果指定’oe’,则合并到标准输出文件中;如果指定’eo’,则合并到标准错误输出文件中.
-k指定执行主机是否保留错误输出和实际输出。
如果指定‘o’,则仅保留标准输出;如果指定’e’,则仅保留标准错误输出;如果指定’oe’或‘eo’,则保留标准输出和标准错误输出;如果指定’n’,则不保留任何输出。
-l指定作业所需要的资源,设定对可消耗资源的限制。
如果不设置,则无限制。
例如:
resource_name[=[value]][,resource_name[=[value]],…]
LINUX系统可以设置的资源有cput,file,pcput,pmem,pvmem,vmem,walltime,arch,nodes,ncpus等;
Cput指作业的所有进程使用cpu最长时间;
File指作业可以建立单个文件大小的最大限制;
Pcput指作业的单个进程可以使用CPU的最长时间;
vmem指作业可以使用的物理内存的最大值;
Pmem指作业的单个进程可以使用的物理内存的最大值;
Pvmem指作业的单个进程可以使用的虚拟内存的最大值;
walltime指作业处于运行状态的最长时间;
arch指定系统管理员所定义的系统结构类型;
host指定作业运行的主机名;
nodes指定作业独占使用的结点数目和属性,使用“+”可以连接多种结点的定义。
结点的属性和主机名或数目之间通过“:
”分隔。
如果不指定结点数,则缺省为1。
结点的属性包括ppn(每个结点上的进程数,缺省为1)和系统管理员设置的属性(如batch、bigmem)
例如:
请求12个结点,不管其属性
-lnodes=12
请求12个属性为batch的结点和14个属性为bigmem的结点
-lnodes=12:
batch+14:
bigmem
请求4个结点,每个结点上使用2个CPU
-lnodes=4:
ppn=2
software指作业要求的软件包
-m定义何时给用户发送有关作业的邮件。
可设定的选项有:
n不发送邮件
a当作业被批处理系统中断时,发送邮件
b当作业开始执行时,发送邮件
e当作业执行结束时,发送邮件
-M指定发送有关作业信息的邮件用户列表。
格式为user[@host][,user@[host],…]缺省值为提交作业的用户。
-N指定作业的名字。
缺省值为脚本的名字,如果没有指定脚本,则为STDIN。
-p指定作业的优先级,优先级的范围是[-1024,+1023]。
缺省值是没有优先级。
-q指定作业的目的地(结点池),目的地可有三种格式:
pool
@server
pool@server
-ry|n指定作业是否可重新运行。
指定‘y’时,作业可以重新运行;指定’n’时,作业不能重新运行。
缺省值为’n’。
-v格式为variable1,variable2,…或variable1=value,variable2=value,…这些变量和其值可以传递到作业中。
-V指定qsub命令的所有的环境变量都传递到批处理作业中。
作用:
以脚本文件的形式向批处理服务器提交作业。
举例:
运行MPI程序的脚本cpi.ljrs如下:
#!
/bin/sh
###Jobname
#LJRS-Ntest
###Declarejobnon-rerunable
#LJRS-rn
###Outputfiles
#LJRS-etest.err
#LJRS-otest.log
###Mailtouser
#LJRS-mae
###poolname(small,medium,long,verylong)
#LJRS-qdque
###Numberofnodes(nodepropertyev67wanted)
#LJRS-lnodes=8:
batch
#Thisjob’sworkingdirectory
echoWorkingdirectoryis$LJRS_O_WORKDIR
cd$LJRS_O_WORKDIR
echoRunningonhost‘hostname‘
echoTimeis‘date‘
echoDirectoryis‘pwd‘
echoThisjobsrunsonthefollowingprocessors:
echo‘cat$LJRS_NODEFILE‘
#Definenumberofprocessors
NPROCS=‘wc-l<$LJRS_NODEFILE‘
echoThisjobhasallocated$NPROCSnodes
#RuntheparallelMPIexecutable“a.out”
mpirun-v-machinefile$LJRS_NODEFILE-np$NPROCScpi
1、把脚本文件cpi.ljrs提交到结点池dque中运行。
$qsubcpi.ljrs
35.console
$qstat
JobidNameUserTimeUseSPool
35.consolecpizhangxq0:
00:
00Rdque
2、把脚本作业cpi.ljrs提交到结点池long中运行,并且当作业开始运行时,给用户发送电子邮件。
$qsub-Plong-mbcpi.ljrs$qstat
JobidNameUserTimeUseSPool
36.consolecpizhangxq0Rlong
3、使用15个结点运行cpi.ljrs,运行时间不能大于2小时,作业占用的内存能大于15mb
$qsub–lnodes=15,walltime=2:
00:
00,mem=15mbcpi.ljrs
4、综合考虑CPU、内存、缓冲区、硬盘等因素的使用情况,设置其权值分别为5,4,3,2.
$qsub–lnodes=5-nsyn–L5,4,3,2cpi.ljrs
5、使用-I和–l选项在指定的结点上交互式运行作业
$qsub–I-lnodes=c0101
运行该命令后,系统将自动切换到c0101的虚拟终端,所有的标准输入和标准输出和标准错误输出均都显示在该终端上.在系统出现”waitingtojobidtostart”时,用户若按^C键,即可中断该交互作业.当该交互作业已经启动后,用户除了交互式运行作业外,还可进行以下操作:
~.该命令将使qsub退出,且终止作业。
~^Z挂起qsub,作业依然保持运行状态,无任何输入输出。
用户可以在本地shell上提交命令。
~^Y部分挂起qsub,因为还可以给作业发送输入,而且接受作业的输出的同时,还可以在本地shell提交命令。
2、查看状态qstat
语法:
qstat[-f][-Wsite_specific][job_identifier...|destination...]
qstat-Q[-f][-Wsite_specific][destination...]
qstat-B[-f][-Wsite_specific][server_name...]
参数:
destination可以为pool,@server,pool@server
作用:
查看作业、结点池和批处理服务器的状态。
命令格式一可以输出所指定作业ID或者结点池中所有作业的状态,命令格式二可以输出每个结点池的状态信息,命令格式三可以输出服务器的状态。
举例:
1.显示已经配置的所有结点池状态信息。
qstat-q
2.显示已经提交的作业状态信息
qstat-a
3.显示指定作业的所有状态信息
$qstat-f23.console
mtime=SunApr2819:
54:
482002
Output_Path=console:
/home/zhangxq/cpi.o23
Priority=0
qtime=SunApr2819:
54:
482002
Rerunable=True
Resource_List.cput=00:
00:
59
Resource_List.nodect=2
Resource_List.nodes=2:
ppn=1
Variable_List=LJRS_O_HOME=/home/zhangxq,LJRS_O_LANG=en_US
……
4.显示服务器的状态
$qstat–B
ServerMaxTotQueRunHldWatTrnExtStatus
console00000000Active
3、查询作业qselect
语法:
qselect[-a[op]date_time][-Aaccount_string][-hold_list][-lresource_list][-Nname][-p[op]priority][-qdestination][-ry|n][-sstates][-uuser_list]
参数:
op表示某一个作业属性值和选项参数值之间的关系。
如
.eq.(等于)
.ne.(不等于)
.ge.(大于或等于)
.gt.(大于)
.le.(小于)
其它参数含义见qsub命令。
作用:
列出符合选项要求的作业ID。
这些作业来自于单个服务器。
如果没有任何选项,该命令则列出该用户被授权的服务器上的所有作业。
对那些普通用户来说,该命令只显示该用户所提交的作业。
举例:
1.查询用户所提交的作业
$qsub-qlongcpi.ljrs
28.console
$qselect
25.console
28.console
2.查询指定结点池中的作业
$qstat
JobidNameUserTimeUseSPool
25.consolecpizhangxq0Qdque
29.consolecpizhangxq0Rlong
$qselect-Pdque
25.console
3.查询指定主机上的作业
$qstat
JobidNameUserTimeUseSPool
25.consolecpizhangxq0Qdque
29.consolecpizhangxq0Rlong
$qselect-P@console
25.console
29.console
4、挂起作业qhold
语法:
qhold[-hhold_list]job_identifier…
作用:
挂起批处理作业。
挂起有三种类型:
普通用户级‘u’、管理员级(操作员级)‘o’、系统级‘s’,缺省值为不挂起‘n’。
用户只能在用户级别挂起自己提交的作业,操作员可以在用户级和操作员级挂起任何作业,系统管理员可以在任何级别上挂起任何作业。
在执行该命令时,如果作业在运行结点池里排队,那么作业将直接被挂起;如果作业处于运行状态,为了中断作业的执行,必须采取其他办法。
如果被挂起作业的主机系统支持一致点检查或者重新启动,则挂起正在运行作业将引发以下操作:
首先检查作业的一致性,然后释放该作业所占用的资源,最后该作业位于执行结点池中,处于挂起状态;如果被挂起作业的主机系统不支持一致点检查或者重新启动,则仅设置指定的挂起作业类型,而实际上并不能挂起,除非调用qrerun命令重新运行该作业时,该挂起请求才生效。
举例:
1.使用普通用户身份挂起作业
$qhold-hu25.console$qstat
JobidNameUserTimeUseSPool
25.consolecpizhangxq0Hdque
2.以操作员身份挂起作业
$qhold-ho25
qhold:
UnauthorizedRequest25.console
$suroot
$qhold-ho25
$qstat
JobidNameUserTimeUseSPool
25.consolecpizhangxq0Hdque
5、释放作业qrls
语法:
qrls[-hhold_list]job_identifier...
作用:
释放被挂起的批处理作业。
由于作业的挂起有三种类型:
USER、OPERATOR和SYSTEM。
所以,要释放不同类型的作业挂起,用户就必须具有相应的权限。
缺省为USER级
举例:
释放在普通用户和操作员级被挂起的作业。
$qstat
JobidNameUserTimeUseSPool
25.consolecpizhangxq0Hdque
$qrls-huo25
$qstat
JobidNameUserTimeUseSPool
25.consolecpizhangxq0Qdque
6、重新运行作业qrerun
语法:
qrerunjob_identifier...
作用:
重新运行所指定的作业。
举例:
如果作业允许别重新执行(缺省值是可以重新运行)。
ROOT用户运行该命令,可以终止本次运行,把该作业放入其原来所在的结点池中,重新运行。
$qrerun27
qrerun:
UnauthorizedRequest27.console
$su–root
$qstat
JobidNameUserTimeUseSPool
25.consolecpizhangxq0Qdque
27.consolecpizhangxq0Rdque
$qrerun27
$qstat
JobidNameUserTimeUseSPool
25.consolecpizhangxq0Qdque
27.consolecpizhangxq0Rdque
7、更改作业属性qalter
语法:
qalter[-adate_time][-Aaccount_string][-epath][-hhold_list][-jjoin][-kkeep][-lresource_list][-mmail_options][-Muser_list][-Nname][-opath][-ppriority][-rc][-uuser_list]job_identifier...
参数:
各参数的含义见qsub命令。
作用:
更改批处理作业的属性。
主要修改所指定作业ID的相关属性(选项表中所列出的属性)。
举例:
1.更改批处理作业的运行时间属性。
$qalter-a030925100023.console
2.更改给用户发送邮件的时间为作业中止和运行结束时
$qalter–mae23.console
8、删除作业qdel
语法:
qdel[-Wdelay|force]job_identifier...
参数:
-W当指定delay时,表示在删除作业前需要等待的时间(秒)
当指定force时,强制删除该作业。
作用:
删除批处理作业。
按照命令行中所指定的作业ID的顺序来删除作业。
举例:
$qstat
JobidNameUserTimeUseSPool
22.consolecpizhangxq0Qlong
$qdel22
9、给作业发送消息qmsg
语法:
qmsg[-E][-O]message_stringjob_identifier...
参数:
-E将消息串写入错误输出文件
-O将消息串写入输出文件
作用:
给批处理作业发送消息。
该命令通过给作业的所有者(批处理服务器)发送消息,从而把消息写入作业的输出文件,也就是说,该命令并不是直接把消息写入作业的输出文件。
举例:
给正在运行的作业发送消息,该消息被写入所指定作业的错误输出文件中。
$qstat
JobidNameUserTim