注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Wei Ding blog

 
 
 

日志

 
 

资源管理软件TORQUE 与作业调度软件Maui 的安装、设置及使用(转载)  

2012-02-09 16:48:33|  分类: pipeline |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
资源管理软件TORQUE 与作业调度软件Maui 的安装、设置及使用
李会民(hmli@ustc.edu.cn
中国科学技术大学网络信息中心
2008 年1 月
目录
1 资源管理软件TORQUE 的安装与设置2
1.1 服务节点安装TORQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 服务节点初始化并设置TORQUE . . . . . . . . . . . . . . . . . . . . . . 2
1.3 计算节点上安装TORQUE . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 计算节点配置TORQUE . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 安装与配置作业调度软件:Maui 5
2.1 服务节点上安装Maui . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 服务节点上配置Maui . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 作业运行6
3.1 串行作业. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 并行作业. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3 常用作业管理命令. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3.1 查看队列中的作业状态:qstat . . . . . . . . . . . . . . . . . . . . 9
3.3.2 挂起作业:qhold . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3.3 取消挂起:qrls . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1
3.3.4 终止作业:qdel 和canceljob . . . . . . . . . . . . . . . . . . . . . 10
3.3.5 查看作业状态:checkjob . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.6 交换两个作业的排队顺序:qorder . . . . . . . . . . . . . . . . . . 12
3.3.7 选择符合特定条件的作业的作业号:qselect . . . . . . . . . . . . 12
3.3.8 显示队列中作业的信息:showq . . . . . . . . . . . . . . . . . . . 13
3.3.9 显示节点信息:pbsnodes 和qnodes . . . . . . . . . . . . . . . . . 13
2
1 资源管理软件TORQUE 的安装与设置
TORQUE 和Maui 可以从http://www.clusterresources.com 上下载。以下仅
是粗略配置,详细配置请参考相关手册:
. TORQUE:http://www.clusterresources.com/torquedocs21/
. Maui:http://www.clusterresources.com/products/maui/docs/
mauiusers.shtml
1.1 服务节点安装TORQUE
这里假设服务节点的机子名为kd50,其中一个计算节点的名字为node0101。
root@kd50# tar zxvf torque-2.2.1.tar.gz
root@kd50# cd torque-2.2.1
root@kd50# ./con gure {pre x=/opt/torque-2.2.1 {with-rcp=rcp
上面–with-rcp=rcp 设置为利用rsh 协议在节点间传输文件,也可设置为–withrcp=
scp 以利用scp 协议进行传输。利用rcp 或者scp 传输需要配置节点间无须密码
访问,具体请参看相关文档。
root@kd50# make
root@kd50# make install
1.2 服务节点初始化并设置TORQUE
将TORQUE 的可执行文件所在的目录放入系统的路径中,修改/etc/profile: TORQUE=/opt/torque..2.2.1
MAUI=/opt/maui..3.2.6p20
if [ ”`id ..u`” ..eq 0 ]; then
PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:”
PATH=$PATH:$TORQUE/bin:$TORQUE/sbin:$MAUI/bin:$MAUI/sbin
else
PATH=”/usr/local/bin:/usr/bin:/bin:/usr/games:$TORQUE/bin:$MAUI/bin”
PATH=$PATH:$TORQUE/bin:$MAUI/bin

  上面将同时设置Maui 的路径,如在这里已经设置了,并且Maui 安装路径为上
面的话,后面就无需再设置Maui 的路径。
3
修改后使设置的环境变量生效:
source /etc/profile
将root 设置为TORQUE 的管理帐户:
root@kd50# ./torque setup user(不能是root)
在/var/spool/torque/server priv/nodes 中添加计算节点的机器名,类似: kd50
node0101
  如果服务节点不参与计算的话,需要将服务节点的机器名去掉。如果node0101 上
有两个处理单元,就设置为node0101 np=2。
如果/var/spool/torque 下的目录spool 和undelivered 的权限不是drwxrwxrwt 的
话,需要chmod 1777 spool undelivered。
创建作业队列:
root@kd50# pbs server -t create
root@kd50# qmgr
输入下面Qmgr: 后的内容,将设置一个默认队列dque: Qmgr: create queue dque queue type=execution
Qmgr: set server default queue=dque
Qmgr: set queue dque started=true
Qmgr: set queue dque enabled=true
Qmgr: set server scheduling=true
  可以通过下面的代码来检查pbs server 是否正常运行,若pbs server 没有运行,
则首先运行该程序,然后执行下面的代码: # shutdown server
qterm ..t quick
# start server
pbs server
# verify all queues are properly con gured
qstat ..q
# view additional server con guration
qmgr ..c 'p s'
# verify all nodes are correctly reporting
pbsnodes ..a
# submit a basic job
echo ”sleep 30” j qsub
4
# verify jobs display
qstat
 
1.3 计算节点上安装TORQUE
先在服务节点上的编译TORQUE 的目录下执行下面命令生成所需要的包:
root@kd50# make packages
该命令执行之后一共产生五个包,分别为:
. torque-package-clients-linux-i686.sh
. torque-package-devel-linux-i686.sh
. torque-package-doc-linux-i686.sh
. torque-package-mom-linux-i686.sh
. torque-package-server-linux-i686.sh
然后将这些包传送给机群中的所有计算节点并在各计算节点上执行安装,比如:
root@node0101# ./torque-package-clients-linux-i686.sh {install
1.4 计算节点配置TORQUE
/var/spool/torque 是TORQUE 的配置目录, 只要在该目录下创建一个文
件server name,其内容是服务节点的机器名。
对于NFS 文件共享系统来说,还必须告诉TORQUE 这种共享的用户目录,编
辑/var/spool/torque/mom priv/config,其内容类似: $pbsserver kd50 # note: hostname running pbs server
$logevent 255 # bitmap of which events to log
$usecp kd50:/home /home
  其中$pbsserver 后指定服务节点的主机名,$usecp 后面的表示的共享home。
5
在/etc/profile 中设置环境变量: TORQUE=/opt/torque..2.2.1
if [ ”`id ..u`” ..eq 0 ]; then
PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:”
PATH=$PATH:$TORQUE/bin:$TORQUE/sbin
else
PATH=”/usr/local/bin:/usr/bin:/bin:/usr/games”
PATH=$PATH:$TORQUE/bin

 
source /etc/profile 后,可以直接运行pbs mom 启动计算节点的守护进程。
2 安装与配置作业调度软件:Maui
TORQUE 自带的作业调度进程pbs sched 非常简单,建议不要启动此服务,而
是在服务节点上安装Maui 来进行作业调度,注意:在计算节点上无须安装Maui。
2.1 服务节点上安装Maui
root@kd50# tar zxvf maui-3.2.6p20-snap.1182974819.tar.gz
root@kd50# cd maui-3.2.6p20
root@kd50# ./con gure {pre x=/opt/maui-3.2.6p20 {with-pbs=/opt/torque-
2.2.1
root@kd50# make
root@kd50# make install
2.2 服务节点上配置Maui
修改/usr/local/maui/maui.cfg,主要为下面几项: SERVERHOST kd50
# primary admin must be rst in list
ADMIN1 root
# Resource Manager De nition
RMCFG[KD50] TYPE=PBS@RMNMHOST@
6
RMTYPE[0] PBS
  在/etc/profile 中设置环境变量: TORQUE=/opt/torque..2.2.1
MAUI=/opt/maui..3.2.6p20
if [ ”`id ..u`” ..eq 0 ]; then
PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:”
PATH=$PATH:$TORQUE/bin:$TORQUE/sbin:$MAUI/bin:$MAUI/sbin
else
PATH=”/usr/local/bin:/usr/bin:/bin:/usr/games”
PATH=$PATH:$TORQUE/bin:$MAUI/bin

 
source /etc/profile 后启动Maui:
root@kd50# maui
注意不要在服务节点上启动pbs sched。
3 作业运行
系统利用TORQUE 和Maui 进行资源和作业管理, 所有需要运行的作业
无论是用于程序调试还是业务计算均必须通过qsub 命令提交,提交后可以利
用TORQUE 和Maui 的相关命令查询作业状态等。为了利用qsub 提交作业,用户需
针对此作业创建提交脚本,在脚本里面设定需要运行的作业参数等。在此分别给出串
行和并行的简单脚本,用户可以修改此脚本以适用于自己的作业,如需要更加高级的
功能请参考TORQUE 手册。
7
3.1 串行作业
对于串行程序,用户可编写命名为serial job.pbs(此脚本名可以按照用户喜好命
名)的串行作业脚本,其内容如下: #!/bin/sh
#PBS ..N job name
#PBS ..o job.log
#PBS ..e job.err
#PBS ..q dque
cd yourworkdir
echo Running on hosts `hostname`
echo Time is `date`
echo Directory is $PWD
echo This job runs on the following nodes:
cat $PBS NODEFILE
echo This job has allocated 1 node
./yourprog
  注意1,TORQUE 建立在PBS 作业管理系统之上,PBS 的参数需在作业提交脚
本中利用#PBS 设置。上述脚本利用qsub 命令提交后,表示进入yourworkdir 目录
后,提交到dque 队列,其作业名为job name,标准输出和错误输出将分别存在此目
录下的job.log 和job.err 文件中。上述脚本中以#PBS 开头的几行的-N、-o、-e、-
q 参数后分别设置的是这个作业的名字job name、标准输出定向到的文件名job.log、
标准错误输出定向到的文件名job.err、作业使用的队列名dque。
作业脚本编写完成后,可以按照下面命令提交作业:
user@kd50:. /work$ qsub ser job.pbs
如果成功,将有类似下面的输出:
3 7 . kd50
其中37.kd50 表示的是作业号,由两部分组成,37 表示的是作业序号,kd50 表
示的是作业管理系统的主机名,也就是登录节点名,之后可以用此作业号来查询作业
及终止此作业等。
1此脚本中`hostaname` 等中的是键盘左上角的反引号`,不是右侧的'
8
3.2 并行作业
与串行作业类似,对于并行作业,则需要编写类似下面脚本: #!/bin/sh
#PBS ..N job name
#PBS ..o job.log
#PBS ..e job.err
#PBS ..q dque
#PBS ..l nodes=4
cd yourworkdir
echo Time is `date`
echo Directory is $PWD
echo This job runs on the following nodes:
cat $PBS NODEFILE
NPROCS=`wc ..l<$PBS NODEFILE`
echo This job has allocated $NPROCS nodes
mpiexec ..machinefile $PBS NODEFILE ..np $NPROCS ./yourprog
  与串行程序的脚本相比, 主要不同之处在于在#PBS 开头的-l 参数后设
置:nodes=所需要的进程数,另外请注意需采用mpiexec 的命令格式提交并行可
执行程序。
与串行作业类似,可使用下面方式提交:
user@kd50:. /work$ qsub par job.pbs
3.3 常用作业管理命令
与作业相关TORQUE 和Maui 常用的用户命令主要有:
. canceljob:取消已存在的作业
. checkjob:显示作业状态、资源需求、环境、限制、信任、历史、已分配资源和
资源利用等
. nqs2pbs:将nqs 作业脚本转换为pbs 作业脚本
. pbsnodes:显示节点信息
. printjob:显示指定作业脚本中的作业信息
. qdel:取消指定的作业
9
. qhold:挂起一个作业
. qmove:将一个作业从一个队列移到另一个队列中
. qnodes:pbsnodes 的别名,显示节点信息
. qorder:交换两个作业的排队顺序
. qrls:将被挂起的作业送入准备运行的队列中
. qselect:显示符合条件的作业的作业号
. qstat:显示队列、服务节点和作业的信息
. qsub:提交作业
. showbf:显示有特殊资源需求的资源的可用性
. showq:显示已激活和空闲的作业的优先级细节
. showstart:显示空闲作业的估计开始时间
. tracejob:追踪作业信息
具体请参考TORQUE 和Maui 用户手册。
3.3.1 查看队列中的作业状态:qstat
利用qstat 可以查看作业的运行状态:
user@kd50:. /work$ qstat
输入上面命令后,将给出类似下面的输出:
Job id Name User Time Use S Queue
............................ .......................... .............. ................ .. ..........
4 8 . kd50 job name4 us e r 0 E dque
4 9 . kd50 job name1 us e r 0 0 : 0 0 : 0 0 R dque
5 0 . kd50 job name2 us e r 0 H dque
5 1 . kd50 job name3 us e r 0 Q dque
上面几列的含义分别为:作业号、作业名、用户名、使用的时间、状态、队列
名,其中状态中的E、Q、H 和R 分别表示作业处于退出、挂起、排队和运行中。
10
3.3.2 挂起作业:qhold
qhold 命令可以挂起作业,被挂起的作业将不被执行,这样可以让其余作业优先
得到资源运行,被挂起的作业在用qstat 命令查询时显示的状态标志为H,下面命令
将挂起作业号为50.kd50 的作业:
user@kd50:. /work$ qhold 50.kd50
3.3.3 取消挂起:qrls
被挂起的作业可以利用qrls 来取消挂起,重新进入等待运行状态:
user@kd50:. /work$ qrls 50.kd50
3.3.4 终止作业:qdel 和canceljob
用户如果想终止一个作业,可以利用qdel 或canceljob 来取消:
user@kd50:. $ qdel 50.kd50
user@kd50:. $ canceljob 51.kd50
11
3.3.5 查看作业状态:checkjob
利用checkjob 可以查看作业的状态:
user@kd50:. $ checkjob 51.kd50
che cking job 51
Stat e : Hold
Creds : us e r : us e r group : us e r c l a s s : dque qos :DEFAULT
WallTime : 0 0 : 0 0 : 0 0 o f 9 9 : 2 3 : 5 9 : 5 9
SubmitTime : Sun Dec 2 1 9 : 2 2 : 1 9
(Time Queued Total : 0 0 : 4 6 : 1 3 El i g i b l e : 0 0 : 2 4 : 4 0 )
Total Tasks : 4
Req [ 0 ] TaskCount : 4 Pa r t i t i o n : ALL
Network : [NONE] Memory >= 0 Disk >= 0 Swap >= 0
Opsys : [NONE] Arch : [NONE] Featur e s : [NONE]
IWD: [NONE] Executable : [NONE]
Bypass : 0 StartCount : 0
Par t i t ionMask : [ALL]
Flags : RESTARTABLE
PE: 4.00 S t a r tPr i o r i t y : 24
cannot s e l e c t job 51 f o r p a r t i t i o n DEFAULT ( non..i d l e s t a t e 'Hold ' )
从上面的State: Hold 可以看出作业已被挂起。
user@kd50:. $ checkjob 49.kd50
che cking job 49
Stat e : Running
Creds : us e r : us e r group : us e r c l a s s : dque qos :DEFAULT
WallTime : 1 : 0 7 : 1 4 o f 9 9 : 2 3 : 5 9 : 5 9
SubmitTime : Sun Dec 2 1 9 : 0 2 : 1 0
(Time Queued Total : 0 0 : 0 0 : 0 1 El i g i b l e : 0 0 : 0 0 : 0 1 )
StartTime : Sun Dec 2 1 9 : 0 2 : 1 1
Total Tasks : 4
Req [ 0 ] TaskCount : 4 Pa r t i t i o n : DEFAULT
Network : [NONE] Memory >= 0 Disk >= 0 Swap >= 0
Opsys : [NONE] Arch : [NONE] Featur e s : [NONE]
12
NodeCount : 4
Al l o c a t ed Nodes :
[ node04 : 1 ] [ node03 : 1 ] [ node02 : 1 ] [ node01 : 1 ]
IWD: [NONE] Executable : [NONE]
Bypass : 0 StartCount : 1
Par t i t ionMask : [ALL]
Flags : RESTARTABLE
Re s e rvat ion '49 ' ( ..1:06:52 ..> 9 9 : 2 2 : 5 3 : 0 7 Duration : 9 9 : 2 3 : 5 9 : 5 9 )
PE: 4.00 S t a r tPr i o r i t y : 1
从上面的State: Running 可以看出作业处于运行中,并且可以看到占用的资源状
态。
3.3.6 交换两个作业的排队顺序:qorder
利用qorder 可以交换两个作业的排队顺序:
user@kd50:. $ qstat
Job id Name User Time Use S Queue
............................ .......................... .............. ................ .. ..........
5 2 . kd50 job name1 us e r 0 H dque
5 3 . kd50 job name2 us e r 0 Q dque
5 4 . kd50 job name3 us e r 0 Q dque
user@kd50:. $ qorder 53.kd50 54.kd50
user@kd50:. $ qstat
Job id Name User Time Use S Queue
............................ .......................... .............. ................ .. ..........
5 2 . kd50 job name1 us e r 0 H dque
5 4 . kd50 job name3 us e r 0 Q dque
5 3 . kd50 job name2 us e r 0 Q dque
可见qorder 53.kd50 54.kd50 后,作业53.kd50 和54.kd50 的排队顺序相互对换
了,这样作业54.kd50 将优先于53.kd50 运行。
3.3.7 选择符合特定条件的作业的作业号:qselect
qselect 可以用来显示符合一定条件的作业的作业号,比如选择被挂起的作业,可
以用下面的命令:
13
user@kd50:. $ qselect -s H
5 2 . kd50
3.3.8 显示队列中作业的信息:showq
user@kd50:. $ showq
ACTIVE JOBS........................................
JOBNAME USERNAME STATE PROC REMAINING STARTTIME
52 us e r Running 4 9 9 : 2 2 : 4 4 : 0 9 Sun Dec 2 2 1 : 0 4 : 3 7
1 Act ive Job 4 o f 4 Pr o c e s s o r s Act ive (100.00%)
IDLE JOBS............................................
JOBNAME USERNAME STATE PROC WCLIMIT QUEUETIME
54 us e r I d l e 4 9 9 : 2 3 : 5 9 : 5 9 Sun Dec 2 2 1 : 0 4 : 4 5 1
I d l e Job
BLOCKED JOBS................................
JOBNAME USERNAME STATE PROC WCLIMIT QUEUETIME
53 us e r Hold 4 9 9 : 2 3 : 5 9 : 5 9 Sun Dec 2 2 1 : 0 4 : 3 7
Total Jobs : 3 Act ive Jobs : 1 I d l e Jobs : 1 Blocked Jobs : 1
3.3.9 显示节点信息:pbsnodes 和qnodes
利用pbsnodes 和qnodes(实际两者是同一个命令的两个名字)可以显示系统各
个节点的信息,比如空闲(free)、当机(down)、离线(offline)。例如:显示所有
空闲的节点:
user@kd50:. $ pbsnodes -l free
其输出为:
node0101 f r e e
node0102 f r e e
node0104 f r e e
14
  评论这张
 
阅读(1358)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018