PBS
赞同,已经试验成功。
后来查手册: $man qdel
-p 的功能是强制净化队列。
这个 “p” 可能是 “purge” 的缩略形式
qsub,qdel,qmgr,qstat,qhost
PBS 是公开源代码的作业管理系统,在此环境下运行,用户不需要指定程序在哪些节点上运行,程序
所需的硬件资源由PBS 管理和分配。
1、PBS 命令
PBS 提供4 条命令用于作业管理。
(1)
qsub 命令—用于提交作业脚本
命令格式:
qsub [-a date_time] [-c interval] [-C directive_prefix]
[-e path] [-I] [-j join] [-k keep] [-l resource_list] [-m mail_options]
[-M user_list][-N name] [-o path] [-p priority] [-q destination] [-r c]
[-S path_list] [-u user_list][-v variable_list] [-V]
[-W additional_attributes] [-z]
[script]
参数说明:因为所采用的选项一般放在pbs 脚本中提交,所以具体见PBS 脚本选项。
例:# qsub aaa.pbs 提交某作业,系统将产生一个作业号
qsub -cwd -S /bin/bash -l vf=1.5G,p=8,h=compute-0-15 -P project -q all.q -p 100 -N test -o std.o -e std.e
run.sh
-cwd #
指定当前路径为工作目录,
sge
的日志会输出到当前路径。
-S #
指定远程计算节点的
shell
路径
-l #
指定资源请求,多个请求用逗号
(,)
隔开
vf=1.5G #
任务的预估内存,内存估计的值应稍微大于真实的内存,内存预估偏小可能会导致节点跑挂。
h=compute-0-15 #
指定任务跑在
compute-0-15
节点上
p=8 #
指定要申请的
CPU
核心数
-q #
指定要投递到的队列,如果不指定的话,
SGE
会在用户可使用的队列中选择一个。
-P #
参数指明任务所属的项目
-p #
设置优先级,优先级高的优先执行
-N #
指定任务名称
-o #
指定标准输出路径
-e #
指定标准错误路径
run.sh #
为任务脚本
(2)
qdel 命令—用于删除已提交的作业
命令格式:qdel [-W 间隔时间] 作业号
命令行参数:
例:# qdel -W 15 211 15 秒后删除作业号为211 的作业
(3)
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"
(4)
qstat 命令—用于查询作业状态信息
命令格式:qatat [-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 的作业的具体信息。
这个命令默认显示当前用户的任务状态(r/qw/Eqw),不显示资源消耗情况
$ qstat -u zhandl
job-ID prior name user state submit/start at queue slots
ja-task-ID
--------------------------------------------------------------------------------------------
591148 0.55000 test.sh zhandl r 01/27/2016 08:54:16 rna.q@compute-0-26.local 1
如果要查看任务详细信息可以使用
qstat -j job-ID
参数或者
qsee
(之前分享的脚本)
$ qsee -u zhandl
job-name job-ID node@queue memory_host memory_job
cpu_time pro_code
-------- ------ ---------- ----------- ----------
test.sh 591148 compute-0-26@rna.q (3.9G/62.8G, 17.5M/62.5G) vmem=1.2G/1.2G (VF=15G)
01:28:49
可以看到消耗的资源、cpu时间等。另
qstat -f
可以查看节点状态(a/au/o)和load信息
$ qstat -f|grep compute-0-1
reseq.q@compute-0-1.local BIP 0/5/38 28.63 linux-x64
reseq.q@compute-0-10.local BIP 0/10/38 19.23 linux-x64
reseq.q@compute-0-11.local BIP 0/5/38 35.23 linux-x64
reseq.q@compute-0-12.local BIP 0/6/38 35.39 linux-x64
reseq.q@compute-0-13.local BIP 0/6/38 28.47 linux-x64
reseq.q@compute-0-14.local BIP 0/5/38 30.65 linux-x64
reseq.q@compute-0-15.local BIP 0/4/38 27.32 linux-x64
rna.q@compute-0-16.local BIP 0/21/38 -NA- linux-x64 au
rna.q@compute-0-17.local BIP 0/8/38 31.26 linux-x64
rna.q@compute-0-18.local BIP 0/9/38 25.13 linux-x64
rna.q@compute-0-19.local BIP 0/10/38 7.09 linux-x64
如上面看到
compute-0-16
已被跑挂,状态为
au
,load为
-NA-
.
qstat -f 结果中的states
(a)larm, (u)nreachable, (E)rror
state (au) whenever:
- A node is down
- A node is hung/frozen
- Network problems
(4)
qhost 命令—用于看集群资源
这个命令是查看集群资源的,如直接
qhost
会列出节点信息
$ qhost|tail -n 5
compute-0-8 linux-x64 40 28.80 63.0G 28.3G 62.5G 23.3M
compute-0-9 linux-x64 40 23.98 63.0G 16.2G 62.5G 20.9M
mysql linux-x64 12 4.01 63.0G 9.8G 62.5G 78.6M
super-0-1 linux-x64 80 10.13 1009.9G 227.0G 128.0G 0.0
test linux-x64 12 12.74 63.0G 17.0G 62.5G 8.5M
也可以查看节点的任务信息
$ qhost -j |grep super
super-0-1 linux-x64 80 9.40 1009.9G 227.1G 128.0G 0.0
585895 0.55000 denovo.sh fufangni r 01/26/2016 16:51:06 super.q@su MASTER
587179 0.55000 denovo.sh fufangni r 01/26/2016 16:52:25 super.q@su MASTER
591156 0.55000 denovo_lat yukaicheng r 01/27/2016 09:17:48 super.q@su MASTER
所需的硬件资源由PBS 管理和分配。
1、PBS 命令
PBS 提供4 条命令用于作业管理。
(1) qsub 命令—用于提交作业脚本
命令格式:
qsub [-a date_time] [-c interval] [-C directive_prefix]
[-e path] [-I] [-j join] [-k keep] [-l resource_list] [-m mail_options]
[-M user_list][-N name] [-o path] [-p priority] [-q destination] [-r c]
[-S path_list] [-u user_list][-v variable_list] [-V]
[-W additional_attributes] [-z]
[script]
参数说明:因为所采用的选项一般放在pbs 脚本中提交,所以具体见PBS 脚本选项。
例:# qsub aaa.pbs 提交某作业,系统将产生一个作业号
(2) qstat 命令—用于查询作业状态信息
命令格式:qatat [-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"
2、PBS 脚本文件
PBS 脚本文件由脚本选项和运行脚本两部分组成。
(1) PBS 作业脚本选项 (若无-C 选项,则每项前面加‘#PBS’)
-a date_time : date_time 格式为:[[[[CC]YY]MM]DD]hhmm[.SS]
表示经过date_time 时间后作业才可以运行。
-c interval : 定义作业的检查点间隔,如果机器不支持检查点,则忽略此选项。
-C directive_prefix :在脚本文件中以directive_prefix 开头的行解释为qsub 的命
令选项。(若无此选项,则默认为’#PBS’ )
-e path :将标准错误信息重定向到path
-I :以交互方式运行
-j join :将标准输出信息与标准错误信息合并到一个文件join 中去。
-k keep :定义在执行结点上保留标准输出和标准错误信息中的哪个文件。
keep 为o 表示保留前者,e 表示后者,oe 或eo 表示二者都保留,
n 表示皆不保留。若忽略此选项,二者都不保留。
-l resource_list : 定义资源列表。以下为几个常用的资源种类。
cput=N : 请求N 秒的CPU 时间; N 也可以是hh:mm:ss 的形式。
mem=N[K|M|G][B|W]:请求N {kilo|mega|giga}{bytes|words} 大小的内存。
nodes=N:ppn=M :请求N 个结点,每个结点M 个处理器。
-m mail_options :mail_option 为a:作业abort 时给用户发信;为b:作业开始运行发信;为e:
作业结束运行时发信。若无此选项,默认为a。
-M user_list : 定义有关此作业的mail 发给哪些用户。
-N name : 作业名,限15 个字符,首字符为字母,无空格。
-o path : 重定向标准输出到path。
-p priority : 任务优先级,整数,[-1024,1023],若无定义则为0.
-q destination : destination 有三种形式: queue , @server,queue@server。
-r y|n : 指明作业是否可运行,y 为可运行,n 为不可运行。
-S shell : 指明执行运行脚本所用的shell,须包含全路径。
-u user_list : 定义作业将在运行结点上以哪个用户名来运行。
-v variable_list : 定义export 到本作业的环境变量的扩展列表。
-V : 表明qsub 命令的所有环境变量都export 到此作业。
-W additional_attributes : 作业的其它属性。
-z : 指明qsub 命令提交作业后,不在终端显示作业号。
(2) 运行脚本同LINUX 下一般的运行脚本文件。
[注]:脚本文件中的mpirun_rsh 命令行中的节点列表文件要用环境变量表示
$PBS_NODEFILE,这个环境变量表示由pbs 自动分配给作业的节点列表;
节点数为命令行中指定的进程数。
格式如下:
mpirun_rsh –np 进程数 –hostfile $PBS_NODEFILE 可执行程序名
3、PBS 环境下运行示例
(1)脚本文件编辑示例
实例1:运行mpi 程序
命令行:#vi aaa.pbs
编辑的内容:
#PBS -N myjob
#PBS -o /home/jz/my.out
#PBS -e /home/jz/my.err
#PBS –l nodes=2:ppn=2
cd 目录(你们原来直接在节点上运行时所在的目录)
mpirun_rsh –np 4 –hostfile $PBS_NODEFILE /home/jz/helloworld
解释:原先大家都是在中断输入 mpirun_rsh…..这些命令执行程序的,现在只要把这些提交命令放
在.pbs 配置文件的最后,由PBS 来调度执行(自动分配节点和其它资源)。
Myjob 是为你此次要运行的程序起的任务名,可以改成你自己想要的名字
原先输出信息都是直接在屏幕上显示的,现在屏幕上的显示全部输出到文件中,上例中输出文
件是/home/jz/my.out 文件,大家可以根据自己的需要修改(目录,文件名)。程序运行时遇到的一些错误会
记录在.err 文件中。好处:因为对每个任务都设定了不同的输出文件,所以看结果只要打开相应文件看就可
以了,不需要开多个终端,而且里面有任务的详细信息,比如实际分配的是哪些节点计算,运行时间等。
#PBS –l nodes=2:ppn=2,你们程序需要几个节点只要修改nodes 后的数字就可以了,ppn=2 保持
不变,因为我们的机器每个节点都是双cpu 的。
mpirun_rsh –np 4 –hostfile $PBS_NODEFILE /home/jz/helloworld
此例中-np 后的4 是并行数(2 × 2 = 4 个cpu ), –hostfile $PBS_NODEFILE 不需要改变。
/home/jz/helloworld 是你编译好的可执行文件名,需修改。
对于每个你要运行的mpi 程序都需要这样一个.pbs 配置文件
也就是说大家原来的操作是:mpirun…………
现在改成2 步走:1)写个pbs 配置文件(比如xxx.pbs);2)向pbs 提交(qsub xxx.pbs)
实例2:运行非mpi 程序
有些用户并不是自己编写mpi 程序,同样也可以用pbs 提交。
比如物理系运行程序时一般输入的命令是 RunDMol3.sh TiFeCp2-pbe-dspp-m=1-opt ,那么配置文件可以
这样写:
命令行:#vi job.pbs
编辑的内容:
#PBS -N physics_job
#PBS -o /home/physics/physics_job.out
#PBS -e /home/physics/physics_job.err
#PBS -l nodes=1:ppn=2
#PBS -r y
cd 目录(你们原来直接在节点上运行时所在的目录)
RunDMol3.sh TiFeCp2-pbe-dspp-m=1-opt
解释:也就是说把原来在终端直接输入的命令RunDMol3.sh TiFeCp2-pbe-dspp-m=1-opt 放到pbs 配置
文件中,因为你们只要一个节点,所以nodes=1,至于用哪个节点系统自动分配,你们肯定很关心是分配
了哪个节点给你们,那么可以用qstat 命令查询(比如qstat -n)。
(2) 提交作业示例
命令行:#qsub aaa.pbs
显示结果:
(3) 作业状态查询示例
Qstat 后加不同参数可以查看不同的信息(各参数的意思,上面有详细的说明,你们可以一个个试验一
下,以后就知道查看哪些信息,需要哪些参数)
实例:
命令行:#qstat –a (查看作业的状态)
显示结果:
解释:Job id 211 是给你提交的任务分配的任务号,S(任务状态,R 表示正在运行,Q 表示正在排
队等候调度)
8
命令行:#qstat –n (查看作业使用的节点)
显示结果:
解释:blade32 就是分给你这个任务的节点
命令行:#qstat –f 211 (查看有关作业运行具体信息)
显示结果:
解释:exec_host 显示的是实际执行该任务的节点
PBS的更多相关文章
- Thinking in Unity3D:基于物理着色(PBS)的材质系统
关于<Thinking in Unity3D> 笔者在研究和使用Unity3D的过程中,获得了一些Unity3D方面的信息,同时也感叹Unity3D设计之精妙.不得不说,笔者最近几年的引擎 ...
- PBS 安装
How to install PBS Pro using the configure script. . Install the prerequisite packages for building ...
- Unity5 GI与PBS渲染从用法到着色代码
http://www.cnblogs.com/zhouxin/p/5168632.html 本文主要介绍Untiy5以后的GI,PBS,以及光源探头,反射探头的用法以及在着色器代码中如何发挥作用,GI ...
- change the walltime for currently running PBS job (qalter pbs)
qalter jobid -l walltime=X e.g.qalter 377470.manager -l walltime=2222:00:00qalter: Unauthorized Requ ...
- PBS常用指令合集
以下以任务名 job.pbs对应任务ID 12341234为代表,提交者用户名为user. 1.基本指令-最常用 提交作业 qsub job.pbs 查询全部作业 qstat 查询个人作业 qstat ...
- (原创)PBS | SGE 智能任务投递系统monitor | python实现
之前看到过高手写的一个monitor,用python面向对象实现的,依赖几个核心的python包,drmaa,zodb,理论上来说解决了所有的任务投递问题. 但是在复杂的集群环境下还是会经常出问题,这 ...
- pbs 作业管理命令
PBS 提供4 条命令用于作业管理. (1) qsub 命令—用于提交作业脚本 命令格式: qsub [-a date_time] [-c interval] [-C directive_prefix ...
- PBS命令和使用
PBS是公开源代码的作业管理系统,在此环境下运行,用户不需要指定程序在哪些节点上运行,程序所需的硬件资源由PBS管理和分配. PBS(Portable Batch System)是由NASA开发的灵活 ...
- CIR,CBS,EBS,PIR,PBS傻傻分不清楚?看这里!—-揭秘令牌桶
概述 春暖花开的时候,大家都开着汽车外出旅游欣赏美丽的风景,却被堵在高速公路上,你是否为此感到痛苦?但如果有一种机制可以评估高速公路上的车流量.控制车流情况,确保进入高速公路的汽车都能在路上安全畅行, ...
随机推荐
- [React Native] Up and Running
We'll download the requirements for getting started with React Native, refactor our app to ES6, walk ...
- Bash String Manipulation Examples – Length, Substring, Find and Replace--reference
In bash shell, when you use a dollar sign followed by a variable name, shell expands the variable wi ...
- beaglebone-black 在Angstrom系统中的网络配置方法
Beaglebone Linux 101: Assigning a Static IP Address with Connman Posted on February 6, 2012 by dwatt ...
- Hadoop Standalone and Pseudo Mode
. Required Softwareyum install openssh-server rsync java-1.8.0-openjdk-devel . Setup Hostname/etc/ho ...
- ASP.Net中GridView多层嵌套,用最里层的控件获取到外层GridView
protected void ddlCode_SelectedIndexChanged(object sender, EventArgs e) { DropDownList ddlCode = (Dr ...
- 在jsp中的css
div#one{}div#two{ width:auto; height:20px;background-color:#FAEBD7;text-align:right;}div#three{ widt ...
- EF6调用存储过程,返回多个结果集处理
链接:http://www.codeproject.com/Articles/675933/Returning-Multiple-Result-Sets-from-an-Entity-Fram 案例: ...
- 7-2 DBA顾问第一次上次操作考试
SQLPLUS执行: 1--@?/rdbms/admin/awrrpt 生产snapshot, 一个时间点, 再执行下一个时间点. 2-- 附件作业第一次执行步骤: 1) SQLP ...
- jQuery 源码分析2: jQuery.fn.init
//jQuery.fn.intit 中使用到的外部变量: // 判断是否为HTML标签或#id rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w ...
- 享元模式(咖啡屋)【java与模式】
package com.javapatterns.flyweight.coffeeshop; public class Flavor extends Order { private String fl ...