qstat 任务状态 hqw查看任务在哪个节点上

5645人阅读
SGE(Sun Grid Engine),远程调度作业。
网格,执行任务的计算资源的集合,用户将网格视作单个计算资源。
SGE接受由用户提交的作业,并根据资源管理策略将作业安排在网格内适当的系统上执行,用户一次可以提交数千个作业,而不必考虑它们在何处运行。集群网格包括许多计算资源,SGE帮助我们合理的分配计算资源给用户。
SGE工作原理:SGE依据管理者制定的规则,检测到网格内的所有可用资源,聚集资源,并在该网格内自动地最优地分配资源。
1. 用户通过SGE提交任务的时候描述任务的相关信息,如可用的队列,作业需要分配的内存和CPU等信息。当用户没有描述清楚这些信息的时候,SGE必须检索用户的身份、用户与项目、所属用户组的从属关系,提交作业后这些检索信息也将被存储起来。
2. SGE计算用户可用队列的可用内存,负载情况,然后为队列选择合适的作业,为作业选择合适的队列,优先分派具有最高优先级或等待时间最长的作业。SGE允许同时执行多个作业,SGE系统将尽量在负荷最小且最适合的队列中开始新的作业。
SGE怎样工作:
1. 接受用户投放的任务
2. 在任务运行以前,将任务放到一个存储区域
3. 发送任务到一个执行设备,并监控任务的运行
4. 运行结束写回结果并记录运行日志
常用的SGE命令:
1. 投递任务到指定队列all.q
&&& 方法一: qsub -cwd -l vf=*G -q all.q *.sh
&&& 方法二: qsub -cwd -S /bin/bash -l vf=*G -q all.q *.sh
&&& -cwd 表示在当前路径下投递,sge的日志会输出到当前路径。
&&& -l vf=*G 任务的预估内存,内存估计的值应稍微大于真实的内存,内存预估偏小可能会导致节点跑挂。
&&& -q 指定要投递到的队列,如果不指定的话,SGE会在用户可使用的队列中选择一个满足要求的队列。
&&& 注: 方法一和方法二都可以投递任务到指定队列,但是方法一可能会输出警告信息“Warning: no access to tty (Bad file descriptor). Thus no job control in this shell.” 这是因为SGE默认使用的是tcsh,而*.sh使用的是bash,所以应该在投递的时候指明命令解释器。若非要使用方法一的话,可以在脚本*.sh的开头加上#$ -S /bin/bash。
2. 投递任务到指定节点
&&& qsub -cwd -l vf=*G -l h=node1 *.sh
&&& qsub -cwd -l vf=*G -l h=node1 -P project -q all.q *.sh
&&& -P 参数指明任务所属的项目
3.&查询任务
&&& qstat -f&&&&&&&&&&&&查看所有任务
&&& qstat -j jobId&& 按任务id查看
&&& qstat -u user&& 按用户查看
&&& 任务状态:
&&& qw&& &表示等待状态
&&& Eqw& 投递任务出错
&&& r&&&&&& 表示任务正在运行
&&& dr&&&&&节点挂了之后,删除任务就会出现这个状态,只有节点重启之后,任务才会消失
4. 删除任务
&&& qdel -j&1111& &删除任务号为1111的任务
5. 其他命令
&&& qrsh& 与qsub相比,是交互式的投递任务,注意参数:
&&&&&&&&&&& -now yes|no&& 默认设置为yes&
&&&&&&&&&&&&&&&&&&&& 若设置为yes,立即调度作业,如果没有可用资源,则拒绝作业,任务投递失败,任务状态为Eqw。
&&&&&&&&&&&&&&&&&&&& 若设置为no,调度时如果没有可用资源,则将作业排入队列,等待调度。
&&&&&&&&&&& 例子: qrsh -l vf=*G -q all.q -now no -w n *sh
&&& qacct&&从集群日志中抽取任意账户信息
&&& qalter 更改已提交但正处于暂挂状态的作业的属性
&&& qconf 为集群和队列配置提供用户界面
&&& qhold 阻止已提交作业的执行
&&& qhost 显示SGE执行主机(即各个计算节点)的状态信息
&&& qlogin 启动telnet或类似的登录会话。
6. bash脚本与Linux环境变量
&&& 为了防止脚本运行时找不到环境变量,在投递的bash脚本的前面最好加上以下两句话:
&&& #! /bin/bash
&&& #$ -S /bin/bash
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
(1)(2)(1)(1)博客访问: 18585
博文数量: 10
博客积分: 295
博客等级: 二等列兵
技术积分: 107
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
qsub&& -& submit a batch job to Grid Engine.
阅读(2033) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。qsub命令选项_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
qsub命令选项
上传于||文档简介
&&投任务命令选项
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢博客访问: 122009
博文数量: 50
博客积分: 528
博客等级: 中士
技术积分: 476
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
PBS(Portable Batch System)最初由NASA的Ames研究中心开发,主要为了提供一个能满足异构计算网络需要的软件包,用于灵活的批处理,特别是满足高性能计算的需 要,如集群系统、超级计算机和大规模并行系统。PBS的主要特点有:代码开放,免费获取;支持批处理、交互式作业和串行、多种并行作业,如MPI、 PVM、HPF、MPL;PBS是功能最为齐全, 历史最悠久, 支持最广泛的本地集群调度器之一. PBS的目前包括openPBS, PBS Pro和Torque三个主要分支. 其中OpenPBS是最早的PBS系统, 目前已经没有太多后续开发, PBS pro是PBS的商业版本, 功能最为丰富. Torque是Clustering公司接过了OpenPBS, 并给与后续支持的一个开源版本.PBS的应用不同于一般的直接运行: mpirun –np number ./executable_file直接运行上句,则只能在单个节点上进行并行计算。如果要在多个节点上并行执行则要写machinefile或p4pgfile,两种文件的具体写法参考张林波等《并行计算导论》。运行命令分别为:& & & &mpirun –machinefile filename& & & &mpirun –p4pg filename应用PBS提交任务则会形成任务队列,依次执行,有效分配资源,避免资源竞争。否则CPU时间片会轮流分配给各个人的任务,从而影响所有人的正常作业。torque PBS 提供对批处理作业和分散的计算节点(Compute nodes)的控制。安装Torque组件:在一个节点上(head node)安装pbs_server,所有计算节点上安装pbs_mom,所有计算节点和提交节点上安装PBS客户端。至少做最基本的配置,使Torque系统跑起来,也就是使pbs_server能知道该和哪些机器通话。在pbs_server上创建一个作业提交队列。在集群的所有节点上指定一个cluster name作为property。这可以用qmgr命令做到。比如:& & & & & & & & & qmgr -c "set node node properties=cluster-name"。确保作业可以提交到节点上去。这可以通过使用qsub命令做到。比如:& & & & & & & & &echo "sleep 30" | qsub -l nodes=3。1.0 作业提交系统Torque个人安装总结(PBS)&1.1 Torque安装(在master管理结点上)1. 解压安装包tar -zxvf torque-2.3.0.tar.gz2. 进入到解压后的文件夹./configure --with-default-server=mastermakemake install3. 打包, 必须是个普通用户1) [root@master torque-2.3.0]# ./torque.setup 2) [root@master torque-2.3.0]# make packages把产生的 tpackages , torque-package-clients-linux-x86-64.sh, torque-package-mom-linux-x86-64.sh 拷贝到所有节点。3) 客户端安装[root@master torque-2.3.0]# ./torque-package-clients-linux-x86_64.sh -install[root@master torque-2.3.0]# ./torque-package-mom-linux-x86_64.sh -install4)编辑/var/spool/torque/server_priv/nodes (需要自己建立)加入如下内容master & np=4node01 np=4........node09 np=45)启动pbs_server,pbs_sched,pbs_mom,并把其写到/etc/rc.local里使其能开机自启动。6)创建队列[root@master ~]# qmgrcreate queue studentsset queue students queue_type = Executionset queue students Priority = 40set queue students resources_max.cput = 96:00:00set queue students resources_min.cput = 00:00:01set queue students resources_default.cput = 96:00:00set queue students enabled = Trueset queue students started = True4、在node0x (x=1-9,计算结点上)[root@node0x torque-2.3.0]# ./torque-package-clients-linux-x86_64.sh --install[root@node0x torque-2.3.0]# ./torque-package-mom-linux-x86_64.sh --install然后启动pbs_mom ,把pbs_mom写入/etc/rc.local1.2 Torque PBS使用&1、创建用户在master的root下useradd testpasswd test输入test密码到/var/yp下make一下2、配置普通用户的sshsu testssh-keygen -t dsacd .sshcat id_pub.dsa >> authorized_keyschmod 600 authorized_keys3、编写作业脚本,见下文4、启动mpdmpdboot -n 10 -f mfamfa内容:master:4node01:4….node09:45、提交,查询,删除作业提交作业:qsub pbsjob[test1@master pbstest]$ qsub pbsjob48.master & & & & & & & & & & & & & & & & & 作业提交后会有一个作业号查询作业:qstat[test1@master pbstest]$ qstat&删除作业:qdel 作业号[test1@master pbstest]$ qdel 482.0 PBS服务开启操作流程&& & & &我在Dawing上操作成功了!!& & & &1) 在主节点上打开PBS服务& & & & & & & /etc/init.d/pbs_server start& & & &2) 在主节点和其他节点打开PBS客户端。主节点虽是服务端,但也可参加计算,因而要打开客服。依次执行如下:& & & & & & & /etc/init.d/pbs_mom & start& & & &3) 在所有节点上打开调度器& & & & & & & /etc/init.d/maui.d & & start对于这些PBS的功能开启有几个相同的参量:& & & & & & & status & & & & & & 查看状态& & & & & & & restart & & & & & &重启& & & & & & & stop & & & & & & & 终止& & & & & & & start & & & & & & & 开启& & & &4) 接下来是检查是否可以提交作业& & & & & & & pbsnodes –a返回free即表示可以提交作业。& & & &5) 写脚本vim pbs_ fdtd_TE_xyPML_MPI_OpenMP#!/bin/bash#PBS -l nodes=5:ppn=4 & & & & & & & & & & & 规定使用的节点数nodes以及每个节点能跑多少核ppn#PBS –N taskname & & & & & & & & & & & & & 任取一作业任务名tasknamecd $PBS_O_WORKDIR & & & & & & & & & & &到工作目录下(此为PBS提供的环境变量)mpirun -np 20 ./fdtd_TE_xyPML_MPI_OpenMP执行mpirun一句可以用-machinefile或-p4pg 命令参量制定& & & &6) 提交& & & & & & & qsub pbs_ fdtd_TE_xyPML_MPI_OpenMP& & & &7) 可用qstat查看作业任务,具体参量参看下文。流程终结!3.0 PBS常用命令和选项&3.1 基本脚本写法和选项&PBS是Protable Batch System的缩写,是一个任务管理系统。当多个用户使用同一个计算资源时,每个用户用PBS脚本提交自己的任务,由PBS对这些任务进行管理和资源的分配。下面是一个简单的PBS脚本:#!/bin/bash#PBS -l nodes=20#PBS -N snaphu#PBS -j oe#PBS -l walltime=24:00:00#PBS -l cput=1:00:00#PBS -q dquecd $PBS_O_WORKDIRcat $PBS_NODEFILE $PBS_NODEFILE> NODEFILEmpirun -np ./mpitest将这个脚本保存成submit然后qsub submit就将这个mpitest的任务提交给了系统。脚本中#PBS为脚本选项,用于设置一些参数。#PBS -l表示资源列表,用于设定特定任务所需的一些参数。这里的nodes表示并行环境下可以使用的节点数,而walltime表示任务最大时限,而cput 表示cpu时间的最大时限,运行时间和cpu使用时间超过对应的时限,任务就会以超时退出。这三个参数不是PBS脚本参数,而是并行环境所需的参数。#PBS -N表示任务名称。#PBS -j表示系统输出,如果是oe,则标准错误输出(stderr)和标准输出(stdout)合并为stdout,如果是eo,则合并为stderr,如果没有设定或设定为n,则stderr和stdout分开。#PBS -q表示当前任务选用的队列。在并行环境下,一个系统中往往有多个队列,任务提交后,将在所选的队列中排除等候。系统中有哪些队列可以用qstat -q查看。& & & PBS脚本文件由脚本选项和运行脚本两部分组成。& & & 1) & PBS作业脚本选项(若无-C选项,则每项前面加‘#PBS’)& & & 2) & 运行脚本同LINUX下一般的运行脚本文件格式如下:& & & & &mpirun –np 进程数 ./可执行程序名3.2 PBS 命令与选项&PBS提供的4条命令用于作业管理1. qsub 命令:用于提交作业脚本命令格式:qsub & & & [-a date_time] &[-e path] [-I] & [-l resource_list] & &&[-M user_list] [-N name][-S path_list] & [-u user_list] &[-W additional_attributes] & & &例:# qsub aaa.pbs & & & & 提交某作业,系统将产生一个作业号2. qstat 命令:用于查询作业状态信息命令格式:qstat [-f][-a][-i] [-n][-s] [-R] [-Q][-q][-B][-u]参数说明:-f & & & & & & & & & jobid 列出指定作业的信息-a & & & & & & & & &列出系统所有作业-i & & & & & & & & & 列出不在运行的作业-n & & & & & & & & &列出分配给此作业的结点-s & & & & & & & & &列出队列管理员与scheduler所提供的建议-R & & & & & & & & &列出磁盘预留信息-Q & & & & & & & & 操作符是destination id,指明请求的是队列状态 & &&-q & & & & & & & & 列出队列状态,并以alternative形式显示-au userid & & &列出指定用户的所有作业-B & & & & & & & & 列出PBS Server信息-r & & & & & & & & &列出所有正在运行的作业-Qf queue & & &列出指定队列的信息-u & & & & & & & & 若操作符为作业号,则列出其状态。若操作符为destination id,则列出运行在其上的属于user_list中用户的作业状态。例:# qstat -f 211 & & &查询作业号为211的作业的具体信息。3. qdel 命令:用于删除已提交的作业命令格式:qdel [-W 间隔时间] 作业号例:# qdel -W 15 211 & & & & & &15秒后删除作业号为211的作业4. qmgr 命令:用于队列管理& & & qmgr -c "create queue batch queue_type=execution"& & & qmgr -c "set queue batch started=true"& & & qmgr -c "set queue batch enabled=true"& & & qmgr -c "set queue batch resources_default.nodes=1"& & & qmgr -c "set queue batch resources_default.walltime=3600"& & & qmgr -c "set server default_queue=batch"
阅读(4651) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。PBS,QSUB常用命令
我的图书馆
PBS,QSUB常用命令
1、后台提交作业qsub&&&&&& 语法: qsub [-a date_time] [-A account_string] [-e path] [-h] [-I] [-j join] [-k keep] [-l resource_list] [-m mail_options] [-n Node_allocation_Method [-L v1,[v2,[v3,[v4]]]]] [-M user_list] [-N name] [-o path] [-p priority] [-q pool] [-r y|n] [-u user_list] [-v variable_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个结点,不管其属性&&&&&&&&&& -l nodes=12&&&&&& 请求12个属性为batch的结点和14个属性为bigmem的结点&&&&&&&&&& -l nodes=12:batch+14:bigmem&&&&&& 请求4个结点,每个结点上使用2个CPU&&&&&&&&&& -l nodes=4:ppn=2&&&&&& software 指作业要求的软件包&&&&&& -m 定义何时给用户发送有关作业的邮件。可设定的选项有:&&&&&& &&& n 不发送邮件&&& &&&&&& a 当作业被批处理系统中断时,发送邮件&&& &&& &&& b 当作业开始执行时,发送邮件&&&&&& &&& e 当作业执行结束时,发送邮件&&&&&& -M 指定发送有关作业信息的邮件用户列表。格式为user[@host][,user@[host],…]缺省值为提交作业的用户。&&&&&& -N 指定作业的名字。缺省值为脚本的名字,如果没有指定脚本,则为STDIN。&&&&&& -p 指定作业的优先级,优先级的范围是[-1024, +1023]。缺省值是没有优先级。&&&&&& -q 指定作业的目的地(结点池),目的地可有三种格式:&&&&&&&&&&&&& pool&&&&&&&&&&&&& @server&&&&&&&&&&&&& pool@server&&&&&& -r y|n 指定作业是否可重新运行。指定‘y’时,作业可以重新运行;指定’n’时,作业不能重新运行。缺省值为’n’。&&&&&& -v 格式为variable1,variable2,…或variable1=value,variable2=value,…这些变量和其值可以传递到作业中。&&&&&& -V 指定qsub命令的所有的环境变量都传递到批处理作业中。&&&&&&&&&& 作用: 以脚本文件的形式向批处理服务器提交作业。&&&&&&&&&& 举例:&&&&&&&&&& 运行MPI程序的脚本cpi.ljrs如下:&&&&&&&&&& #!/bin/sh&&&&&&&&&& ### Job name&&&&&&&&&& #LJRS -N test&&&&&&&&&& ### Declare job non-rerunable&&&&&&&&&& #LJRS -r n&&&&&&&&&& ### Output files&&&&&&&&&& #LJRS -e test.err&&&&&&&&&& #LJRS -o test.log&&&&&&&&&& ### Mail to user&&&&&&&&&& #LJRS -m ae&&&&&&&&&& ### pool name (small, medium, long, verylong)&&&&&&&&&& #LJRS -q dque&&&&&&&&&& ### Number of nodes (node property ev67 wanted)&&&&&&&&&& #LJRS -l nodes=8:batch&&&&&&&&&& # This job’s working directory&&&&&&&&&& echo Working directory is $LJRS_O_WORKDIR&&&&&&&&&& cd $LJRS_O_WORKDIR&&&&&&&&&& echo Running on host ‘hostname‘&&&&&&&&&& echo Time is ‘date‘&&&&&&&&&& echo Directory is ‘pwd‘&&&&&&&&&& echo This jobs runs on the following processors:&&&&&&&&&& echo ‘cat $LJRS_NODEFILE‘&&&&&&&&&& # Define number of processors&&&&&&&&&& NPROCS=‘wc -l & $LJRS_NODEFILE‘&&&&&&&&&& echo This job has allocated $NPROCS nodes&&&&&&&&&& # Run the parallel MPI executable “a.out”&&&&&&&&&& mpirun -v -machinefile $LJRS_NODEFILE -np $NPROCS cpi&&&&&&&&&&&&&&&&&&&& 1、把脚本文件cpi.ljrs提交到结点池dque中运行。&&&&&&&&&&&&& $ qsub cpi.ljrs&&&&&&&&&&&&& 35.console&&&&&&&&&&&&& $ qstat&&&&&&&&&&&&& Job id Name User TimeUse S Pool&&&&&&&&&&&&& 35.console cpi zhangxq 0:00:00 R dque&&&&&&&&&& 2、把脚本作业cpi.ljrs提交到结点池long中运行,并且当作业开始运行时,给用户发送电子邮件。&&&&&&&&&&&&& $qsub -P long -m b cpi.ljrs $qstat&&&&&& &&&&&& Job id Name User TimeUse S Pool&&&&&&&&&&&&& 36.console cpi zhangxq 0 R long&&&&&&&&&& 3、使用15个结点运行cpi.ljrs,运行时间不能大于2小时,作业占用的内存能大于15mb&&&&&&&&&&&&& $qsub –l nodes=15,walltime=2:00:00,mem=15mb cpi.ljrs&&&&&&&&&&& 4、综合考虑CPU、内存、缓冲区、硬盘等因素的使用情况,设置其权值分别为5, 4, 3, 2.&&&&&&&&&&&&& $qsub –l nodes=5 -n syn –L 5, 4, 3, 2 cpi.ljrs&&&&&&&&&& 5、使用-I和–l选项在指定的结点上交互式运行作业&&&&&&&&&&&&& $ qsub –I -l nodes=c0101&&&&&&&&&&&&& 运行该命令后,系统将自动切换到c0101的虚拟终端,所有的标准输入和标准输出和标准错误输出均都显示在该终端上. 在系统出现”waiting to jobid to start”时,用户若按^C键,即可中断该交互作业.当该交互作业已经启动后,用户除了交互式运行作业外,还可进行以下操作:&&&&&&&&&&&&& ~. 该命令将使qsub退出,且终止作业。&&&&&&&&&&&&& ~^Z挂起qsub,作业依然保持运行状态,无任何输入输出。用户可以在本地shell上提交命令。&&&&&&&&&&&&& ~^Y部分挂起qsub,因为还可以给作业发送输入,而且接受作业的输出的同时,还可以在本地shell提交命令。&&&& 2、查看状态qstat&&&&&& 语法:qstat [-f][-W site_specific] [job_identifier... | destination...]&&&&&& &&&&& qstat -Q [-f][-W site_specific] [destination...]&&&&&& &&&&& qstat -B [-f] [-W site_specific] [server_name...]&&&&&& 参数:destination可以为pool,@server,pool@server&&&&&& 作用:查看作业、结点池和批处理服务器的状态。命令格式一可以输出所指定作业ID或者结点池中所有作业的状态,命令格式二可以输出每个结点池的状态信息,命令格式三可以输出服务器的状态。&&&&&& 举例:&&&&&& 1. 显示已经配置的所有结点池状态信息。&&&&&&&&&& qstat -q&&&&&& 2. 显示已经提交的作业状态信息&&&&&&&&&& qstat -a&&&&&& 3. 显示指定作业的所有状态信息&&&&&&&&&& $ qstat -f 23.console&&&&&&&&&& mtime = Sun Apr 28 19:54:48 2002&&&&&&&&&& Output_Path = console:/home/zhangxq/cpi.o23&&&&&&&&&& Priority = 0&&&&&&&&&& qtime = Sun Apr 28 19:54:48 2002&&&&&&&&&& 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&&&&&&&&&& Server Max Tot Que Run Hld Wat Trn Ext Status&&&&&&&&&& console 0 0 0 0 0 0 0 0 Active&&&& 3、查询作业qselect&&&&&& 语法:qselect [-a [op]date_time] [-A account_string] [-h old_list] [-l resource_list] [-N name] [-p [op]priority] [-q destination] [-r y|n] [-s states] [-u user_list]&&&&&& 参数:op表示某一个作业属性值和选项参数值之间的关系。如&&&&&& .eq. (等于)&&&&&& .ne. (不等于)&&&&&& .ge. (大于或等于)&&&&&& .gt. (大于)&&&&&& .le. (小于)&&&&&& 其它参数含义见qsub命令。&&&&&& 作用:列出符合选项要求的作业ID。这些作业来自于单个服务器。如果没有任何选项,该命令则列出该用户被授权的服务器上的所有作业。对那些普通用户来说,该命令只显示该用户所提交的作业。&&&&&& 举例:&&&&&& 1. 查询用户所提交的作业&&&&&&&&&& $ qsub -q long cpi.ljrs&&&&&&&&&& 28.console&&&&&&&&&& $ qselect&&&&&&&&&& 25.console&&&&&&&&&& 28.console&&&&&& 2. 查询指定结点池中的作业&&&&&&&&&& $ qstat&&&&&&&&&& Job id Name User TimeUse S Pool&&&&&&&&&& 25.console cpi zhangxq 0 Q dque&&&&&&&&&& 29.console cpi zhangxq 0 R long&&&&&&&&&& $ qselect -P dque&&&&&&&&&& 25.console&&&&&& 3. 查询指定主机上的作业&&&&&&&&&& $ qstat&&&&&&&&&& Job id Name User TimeUse S Pool&&&&&&&&&& 25.console cpi zhangxq 0 Q dque&&&&&&&&&& 29.console cpi zhangxq 0 R long&&&&&&&&&& $ qselect -P @console&&&&&&&&&& 25.console&&&&&&&&&& 29.console&&&& 4、挂起作业qhold&&& &&& 语法:qhold [-h hold_list] job_identifier …&&& &&& 作用:挂起批处理作业。挂起有三种类型:普通用户级‘u’、管理员级(操作员级)‘o’、系统级‘s’,缺省值为不挂起‘n’。用户只能在用户级别挂起自己提交的作业,操作员可以在用户级和操作员级挂起任何作业,系统管理员可以在任何级别上挂起任何作业。&&& &&& 在执行该命令时,如果作业在运行结点池里排队,那么作业将直接被挂起;如果作业处于运行状态,为了中断作业的执行,必须采取其他办法。如果被挂起作业的主 机系统支持一致点检查或者重新启动,则挂起正在运行作业将引发以下操作:首先检查作业的一致性,然后释放该作业所占用的资源,最后该作业位于执行结点池 中,处于挂起状态;如果被挂起作业的主机系统不支持一致点检查或者重新启动,则仅设置指定的挂起作业类型,而实际上并不能挂起,除非调用qrerun命令 重新运行该作业时,该挂起请求才生效。&&& &&& 举例:&&& &&& 1. 使用普通用户身份挂起作业&&&&&& &&& $ qhold -h u 25.console $ qstat&&& &&&&&& Job id Name User TimeUse S Pool&&& &&& &&& 25.console cpi zhangxq 0 H dque&&& &&& 2. 以操作员身份挂起作业&&& &&& &&& $ qhold -h o 25&&&&&& &&& qhold: Unauthorized Request 25.console&&& &&&&&& $ su root&&& &&& &&& $ qhold -h o 25&&&&&& &&& $ qstat&&& &&&&&& Job id Name User TimeUse S Pool&&& &&& &&& 25.console cpi zhangxq 0 H dque&&&& 5、释放作业qrls&&& &&& 语法:qrls [-h hold_list] job_identifier ...&&& &&& 作用:释放被挂起的批处理作业。由于作业的挂起有三种类型:USER、OPERATOR和SYSTEM。所以,要释放不同类型的作业挂起,用户就必须具有相应的权限。缺省为USER级&&& &&& 举例:释放在普通用户和操作员级被挂起的作业。&&& &&& &&& $ qstat&&&&&& &&& Job id Name User TimeUse S Pool&&& &&&&&& 25.console cpi zhangxq 0 H dque&&& &&& &&& $ qrls -h uo 25&&&&&& &&& $ qstat&&& &&&&&& Job id Name User TimeUse S Pool&&& &&& &&& 25.console cpi zhangxq 0 Q dque&&&& 6、重新运行作业qrerun&&&&&& 语法:qrerun job_identifier ...&&&&&& 作用:重新运行所指定的作业。&&&&&& 举例:如果作业允许别重新执行(缺省值是可以重新运行)。ROOT用户运行该命令,可以终止本次运行,把该作业放入其原来所在的结点池中,重新运行。&&&&&&&&&& $ qrerun 27&&&&&&&&&& qrerun: Unauthorized Request 27.console&&&&&&&&&& $ su – root&&&&&&&&&& $ qstat&&&&&&&&&& Job id Name User TimeUse S Pool&&&&&&&&&& 25.console cpi zhangxq 0 Q dque&&&&&&&&&& 27.console cpi zhangxq 0 R dque&&&&&&&&&& $ qrerun 27&&&&&&&&&& $ qstat&&&&&&&&&& Job id Name User TimeUse S Pool&&&&&&&&&& 25.console cpi zhangxq 0 Q dque&&&&&&&&&& 27.console cpi zhangxq 0 R dque&&&& 7、更改作业属性qalter&&&&&& 语法:qalter [-a date_time] [-A account_string] [-e path] [-h hold_list] [-j join] [-k keep] [-l resource_list] [-m mail_options] [-M user_list] [-N name] [-o path] [-p priority] [-r c] [-u user_list] job_identifier...&&&&&& 参数:各参数的含义见qsub命令。&&&&&& 作用:更改批处理作业的属性。主要修改所指定作业ID的相关属性(选项表中所列出的属性)。&&&&&& 举例:1. 更改批处理作业的运行时间属性。&&&&&&&&&& $ qalter -a
23.console&&&&&& 2. 更改给用户发送邮件的时间为作业中止和运行结束时&&&&&&&&&& $ qalter –m ae 23.console&&&& 8、删除作业qdel&&&&&& 语法:qdel [-W delay|force] job_identifier ...&&&&&& 参数:-W 当指定delay 时,表示在删除作业前需要等待的时间(秒)当指定force时,强制删除该作业。&&&&&& 作用:删除批处理作业。按照命令行中所指定的作业ID的顺序来删除作业。&&&&&& 举例:$ qstat&&&&&&&&&& Job id Name User TimeUse S Pool&&&&&&&&&& 22.console cpi zhangxq 0 Q long&&&&&&&&&& $ qdel 22&&&& 9、给作业发送消息qmsg&&&&&& 语法:qmsg [-E] [-O] message_string job_identifier ...&&&&&& 参数:-E 将消息串写入错误输出文件&&&&&& &&&&& -O将消息串写入输出文件&&&&&& 作用:给批处理作业发送消息。该命令通过给作业的所有者(批处理服务器)发送消息,从而把消息写入作业的输出文件,也就是说,该命令并不是直接把消息写入作业的输出文件。&&&&&& 举例:给正在运行的作业发送消息,该消息被写入所指定作业的错误输出文件中。&&&&&&&&&& $ qstat&&&&&&&&&& Job id Name User TimeUse S Pool&&&&&&&&&& 25.console cpi zhangxq 0 Q dque&&&&&&&&&& 26.console cpi zhangxq 0 R dque&&&&&&&&&& $ qmsg “The job is running” 26&&&&&&&&&& $ more cpi.e26&&&&&&&&&& The job is running&&&& 10、在结点池之间移动作业qmove&&&&&& 语法:qmove destination job_identifier ...&&&&&& 参数:destination可以为结点池名&&&&&& 作用:把批处理作业移到其他结点池中去运行。即把作业从所在的结点池中删除,并放在其他结点池中。&&&&&& 举例:&&&&&&&&&& $ qstat&&&&&&&&&& Job id Name User TimeUse S Pool&&&&&&&&&& 22.console cpi zhangxq 0 Q dque&&&&&&&&&& $ qmove long 22&&& &&&&&& $ qstat&&&&&&&&&& Job id Name User TimeUse S Pool&&&&&&&&&& 22.console cpi zhangxq 0 Q long&&&& 11、给作业发送信号qsig&&&&&& 语法:qsig [-s signal] job_identifier ...&&&&&& 参数:参数signal可以为信号名称,如SIGKILL,KILL,SIGNULL或者无符号整数,如9、0。&&&&&& 作用:给正在运行的批处理作业发送信号。如果不指定-S选项,则发送“SIGTERM”信号。如果有下列原因之一,如用户无权给作业发送信号、作业未处于运行状态和该信号请求对作业所运行的系统无效,则拒绝执行该命令请求。&&&& 12、查看和管理结点ljrsnodes&&&&&& 语法:ljrsnodes [- {c|o|r}] [nodename …] ljrsnodes - {a|l }]&&&&&& 参数:-a 列出所有结点及其属性,属性包括“state”和“properties”&&&&&& -c 清除结点列表中的“offline”或“down”状态设置,使结点可以被分配给作业。&&&&&& -l 以行的方式列出被标记的结点的状态 -o 将指定结点的状态标记为“offline”。这将帮助管理员暂时停止某些结点的服务。&&&&&& -r 清除指定结点的“offline”状态&&&&&& 作用:该命令可以标记结点的状态为“offline”、“down”或“free”,也可以帮助用户查看结点信息。除了”-a” 和“-l”选项外,使用其他选项需要拥有操作员和管理员权限。&&&&&& 举例:1、查看所有结点信息&&&&&&&&&& ljrsnodes -a&&&&&& 2、将结点标记为“offline”状态&&&&&&&&&& ljrsnodes –o c0108&&&&&& 3、清除结点的“offline”状态设置&&&&&&&&&& ljrsnodes –c c0108 或 ljrsnodes –r c0108&&&& 13、查看所有计算结点的状态shownodes&&&&&& 语法:shownodes [-h]&&&&&& 作用:按照结点池分类显示各结点池中结点的状态,结点状态以不同颜色显示。并在结点名后以数字代表可用CPU数和总共CPU数。例如c, 表示c0101结点可用2CPU总共2CPU,c表示C0102可用1CPU总共2CPU。&&&&&& 举例:$shownodes –h用户通过qsub命令来向系统提交任务,有两种方式提交:脚本方式和命令行方式。(一般情况下,不允许root用户使用qsub命令提交作业)。下面先讲一下用这两种方式提交作业的过程。脚本方式提交用户将需要执行的程序或命令写入脚本中,再加入一些必要或者可选的语句,就可以通脚本方式提交。脚本提交比较方便,用户可以用最简单的文字编辑器(例如 vi)编写一个脚本,然后使用 qsub 命令提交该脚本,pbs 会按照脚本内容执行相应的任务。脚本提交的不足之处就是需要用户执行任务前编写脚本。脚本方式提交任务的一般格式为:qsub [script_name],script_name 是任务脚本的名称。下面介绍 pbs 任务脚本的编写方法。pbs 任务脚本包括三部分:&&&&* shell 说明语句:用来说明用户使用的是哪种 shell,例如 #!/bin/sh说明用户需要使用 Bourne shell,如果用户没有指定,则默认为 Bourne shell&&&&* pbs 指示语句:pbs 指示语句是用户用来请求任务运行时所需的资源或设置任务的一些属性的。以#PBS开头,如#PBS –N taskname 是用来设置任务名称的。pbs 指示语句是可选的,用户可以不用关心它如何写,系统会自动设置。&&&&* pbs 指示句的一个主要作用是请求任务执行时所需要的系统资源,如 cpu 数目,存储容量,运行时间,运行优先级等等。以脚本方式提交的任务的资源请求是通过 pbs 指示语句,一般格式为 #PBS –l [选项=] [选项对应的值],如#PBS –l ncpus=5 表示请求 5 个cpu为之服务。系统资源如下所示arch 所需要的系统结构,只用在资源块中 -l arch=linuxcput 任务的所有进程拥有的最大 cpu 执行时间 -l cput=1:00:00file 任务能够创建的文件的大小 -l file=45mbhost 指定执行主机的名称 -l nodes=X:host 分配 X个主机名称 中含有 host的执行节点mem 任务的所有进程能够分配到的最大物理内存数 -l mem=100mbncpus 请求的 cpu数 -l ncup=5nice 任务运行时的 nice 优先级值 -l nice=3pcput 任务的任何一个进程拥有的最大 cpu 执行时间 -l pcput=1:00:00pmem 任务的任何一个进程能够分配到的最大物理内存数 -l pmem=45mbpvmem 任务的任何一个进程能够使用的虚拟内存的最大数 -l pvmem=100mbvmem 任务的所有并发进程能够使用的最大虚存数 -l pvmem=100mbwalltime 任务可以处于运行态的最大 wall-clock 时间 -l walltime=1:00:00custom 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&&keyword=value[,keyword=value ...]如:qsub -l ncpus=4,mem=123mb,arch=linux任务(程序或命令):可以是用户程序(如C程序),也可以是系统命令下面是一个完整的任务脚本例子,脚本名为 mytask:&&&&&&&1. #!/bin/sh&&&&&&&&&&&&&&&&&//指明所用的 shell&&&&&&&2. #PBS –N mytask&&&&&//设置任务名称&&&&&&&3. #PBS -l walltime=1:00:00&&&&&&&//请求任务执行时间&&&&&&&4. #PBS -l select=ncpus=4:mem=400mb&&&&//请求任务执行所需资源&&&&&&&5. #PBS -j oe&&&&&&&&&&&&&&&&&&&&&&&//设置相关属性(文件合并)&&&&&&&6. date /t&&&&&&&&&&&&&&&&&&&&&&&&&&&//系统命令(打印日期时间)&&&&&&&7. .\my_application&&&&&&&&&&&&&&&&&//所要执行的任务(当前目录名为 my_application的任务)&&&&&&&8. date /t&&&&&&&//&&系统命令第 1 行说明所用的 shell;第 2 至5 行是 pbs 指示语句,设置了任务的一些属性,并请求了资源;第 6 至8行是要执行的命令及任务。编写完脚本后,使用 qsub 命令提交脚本,在 shell下输入:&&&&qsub mytask后敲回车。系统会输出一个任务标识符:sequence-number.servername,如 ode01。sequence-number是任务编号,后面需要用这个号查看任务的执行状态,ervername是 pbs server的名称。命令行方式提交命令行方式提交不用写脚本,用户可以直接从命令行输入。输入的内容基本上和在脚本中输入的相同。其基本格式如下:qsub &return&&&&&&&&&&//输入qsub命令后回车[directives]&&&&&//pbs指示语句(以#PBS为前缀)[tasks]&&&&&&&//任务或命令ctrl-D&&&&&&&&//结束输入,提交任务对于上面用脚本方式提交的任务,用命令行方式提交的格式如下:&&&&&&&1. qsub&&&&&&&2. #PBS –N mytask&&&&&&&3. #PBS –l walltime=1:00:00&&&&&&&4. #PBS –l select=ncpus=4:mem=400mb&&&&&&&5. #PBS -j oe&&&&&&&6. date /t&&&&&&&7. ./my_application&&&&&&&8. date /t注:以命令行方式提交任务时,这些命令选项都要以 pbs 指示语句的格式给出,即选项之前要加前缀#PBS。任务提交后,用户如果要知道任务的当前运行状态,可以通过 qstat 命令查询。qstat 命令的常用选项有:无选项:当 qstat 命令不带任何选项时,以默认方式显示任务信息,例如&&&&[soofree@node32]$ qstat&&&&Job id&&&&&&&&&&&Name&&&&&&&&&&&&&User&&&&&&&&Time Use&&&S&&&&&&&&&&&&&&&Queue&&&&—————-&&&—————-&&&&&&—————-&&&&————&&&——&&&&569.node32&&&&test&&&&&&&&&&&&&soofree&&&&&&&&&&0&&&&&&&&&&&&&R&&&&&&&&&&&&&&&small其中,Job id 是任务的标识符,Name 是任务名称,User是任务所有者,Time Use 是CPU使用时间,S 是任务当前状态(本例中 R表示正在运行),Queue表示任务所在队列。任务的状态如下:&&&&&&&&* B&&只用于任务向量,表示任务向量已经开始执行&&&&&&&&* E&&任务在运行后退出&&&&&&&&* H&&任务被服务器或用户或者管理员阻塞&&&&&&&&* Q&&任务正在排队中,等待被调度运行&&&&&&&&* R&&任务正在运行&&&&&&&&* S&&任务被服务器挂起,由于一个更高优先级的任务需要当前任务的资源&&&&&&&&* T&&任务被转移到其它执行节点了&&&&&&&&* U&&由于服务器繁忙,任务被挂起&&&&&&&&* W&&任务在等待它所请求的执行时间的到来(qsub -a)&&&&&&&&* X&&只用于子任务,表示子任务完成再举一例,使用-a 选项指定任务开始执行时间:&&&&[soofree@nod32]$ qsub -a 2102 test&&&&571.node32&&&&[soofree@node32]$ qstat&&&&Job id&&&&&&&&&&&Name&&&&&User&&&&Time Use S&&Queue&&&&—————- —————- —————- ———– — ——–&&&&ode01&&&&&&test&&&&&&&soofree&&&&&0&&&&W&&&&default此时任务状态(S)显示 W,表示任务正在等待执行时间的到来PBS 命令与使用易用性:为所有的资源提供统一的接口,易于配置以满足不同系统的需求,灵活的作业调度器允许不同系统采用自己的调度策略。移植性:符合POSIX 1003.2标准,可以用于shell和批处理等各种环境。适配性:可以适配与各种管理策略,并提供可扩展的认证和安全模型。支持广域网上的负载的动态分发和建立在多个物理位置不同的实体上的虚拟组织。灵活性:支持交互和批处理作业。OpenPBS(&)是PBS的Open Source的实现。商业版本的PBS可以参照:&。、命令提供条命令用于作业管理。&命令用于提交作业脚本命令格式:参数说明:因为所采用的选项一般放在脚本中提交,所以具体见脚本选项。例:&提交某作业,系统将产生一个作业号&命令用于查询作业状态信息命令格式:参数说明:&列出指定作业的信息列出系统所有作业列出不在运行的作业&列出分配给此作业的结点列出队列管理员与所提供的建议列出磁盘预留信息&操作符是,指明请求的是队列状态&列出队列状态,并以形式显示&列出指定用户的所有作业&列出信息&列出所有正在运行的作业&列出指定队列的信息&若操作符为作业号,则列出其状态。若操作符为,则列出运行在其上的属于中用户的作业状态。例:查询作业号为的作业的具体信息。&命令用于删除已提交的作业命令格式:&间隔时间&作业号命令行参数:例:秒后删除作业号为的作业&命令用于队列管理、脚本文件脚本文件由脚本选项和运行脚本两部分组成。作业脚本选项 (若无选项,则每项前面加‘)&:&格式为:&表示经过时间后作业才可以运行。&: 定义作业的检查点间隔,如果机器不支持检查点,则忽略此选项。&:在脚本文件中以开头的行解释为的命令选项。(若无此选项,则默认为&):将标准错误信息重定向到:以交互方式运行:将标准输出信息与标准错误信息合并到一个文件中去。&:定义在执行结点上保留标准输出和标准错误信息中的哪个文件。为&表示保留前者,表示后者,或表示二者都保留,表示皆不保留。若忽略此选项,二者都不保留。&: 定义资源列表。以下为几个常用的资源种类。&: 请求秒的时间也可以是的形式。:请求&大小的内存。:请求个结点,每个结点个处理器。&:为:作业时给用户发信;为:作业开始运行发信;为:作业结束运行时发信。若无此选项,默认为。&: 定义有关此作业的发给哪些用户。&: 作业名,限个字符,首字符为字母,无空格。: 重定向标准输出到。&: 任务优先级,整数,,,若无定义则为&:&有三种形式:&。&: 指明作业是否可运行,为可运行,为不可运行。: 指明执行运行脚本所用的,须包含全路径。&: 定义作业将在运行结点上以哪个用户名来运行。&: 定义到本作业的环境变量的扩展列表。: 表明命令的所有环境变量都到此作业。&: 作业的其它属性。: 指明命令提交作业后,不在终端显示作业号。&运行脚本同下一般的运行脚本文件。注:脚本文件中的命令行中的节点列表文件要用环境变量表示,这个环境变量表示由自动分配给作业的节点列表;节点数为命令行中指定的进程数。格式如下:mpirun_rsh –np 进程数 –hostfile $PBS_NODEFILE 可执行程序名&命令详解如下:&Getting Status on the System, Queues, and JobsCommandShort DescriptionTutorialManual Pagelist information about queues and jobslist all queues on system&and&list queue limits for all queues&and&list all jobs on systemlist all jobs owned by user&useridlist all jobs with status comments&and&list all running jobs&and&list all information known about specified joblist all information known about specified queueList summary information about the PBS server&and&Submitting a Jobsubmit&jobscript&to PBSsubmit an interactive-batch jobsubmit job directly to a specified queueUsing the Graphical User Interface (GUI)Graphical User Interface to PBS commands
发表评论:
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&}

我要回帖

更多关于 linux qstat 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信