PBS作业调度应用与说明.docx
《PBS作业调度应用与说明.docx》由会员分享,可在线阅读,更多相关《PBS作业调度应用与说明.docx(8页珍藏版)》请在冰豆网上搜索。
PBS作业调度应用与说明
PBS(PortableBatchSystem)最初由NASA的Ames研究中心开发,主要为了提供一个能满足异构计算网络需要的软件包,用于灵活的批处理,特别是满足高性能计算的需要,如集群系统、超级计算机和大规模并行系统。
PBS的主要特点有:
代码开放,免费获取;支持批处理、交互式作业和串行、多种并行作业,如MPI、PVM、HPF、MPL;PBS是功能最为齐全,历史最悠久,支持最广泛的本地集群调度器之一.PBS的目前包括openPBS,PBSPro和Torque三个主要分支.其中OpenPBS是最早的PBS系统,目前已经没有太多后续开发,PBSpro是PBS的商业版本,功能最为丰富.Torque是Clustering公司接过了OpenPBS,并给与后续支持的一个开源版本.
PBS的应用不同于一般的直接运行:
mpirun–npnumber./executable_file
直接运行上句,则只能在单个节点上进行并行计算。
如果要在多个节点上并行执行则要写machinefile或p4pgfile,两种文件的具体写法参考张林波等《并行计算导论》。
运行命令分别为:
mpirun–machinefilefilename
mpirun–p4pgfilename
应用PBS提交任务则会形成任务队列,依次执行,有效分配资源,避免资源竞争。
否则CPU时间片会轮流分配给各个人的任务,从而影响所有人的正常作业。
torquePBS提供对批处理作业和分散的计算节点(Computenodes)的控制。
∙安装Torque组件:
在一个节点上(headnode)安装pbs_server,所有计算节点上安装pbs_mom,所有计算节点和提交节点上安装PBS客户端。
至少做最基本的配置,使Torque系统跑起来,也就是使pbs_server能知道该和哪些机器通话。
∙在pbs_server上创建一个作业提交队列。
∙在集群的所有节点上指定一个clustername作为property。
这可以用qmgr命令做到。
比如:
qmgr-c"setnodenodeproperties=cluster-name"。
∙确保作业可以提交到节点上去。
这可以通过使用qsub命令做到。
比如:
echo"sleep30"|qsub-lnodes=3。
1.0作业提交系统Torque个人安装总结(PBS)
1.1Torque安装(在master管理结点上)
1.解压安装包
tar-zxvftorque-2.3.0.tar.gz
2.进入到解压后的文件夹
./configure--with-default-server=master
make
makeinstall
3.打包,必须是个普通用户
1)[root@mastertorque-2.3.0]#./torque.setup
2)[root@mastertorque-2.3.0]#makepackages
把产生的tpackages,torque-package-clients-linux-x86-64.sh,torque-package-mom-linux-x86-64.sh拷贝到所有节点。
3)客户端安装
[root@mastertorque-2.3.0]#./torque-package-clients-linux-x86_64.sh-install
[root@mastertorque-2.3.0]#./torque-package-mom-linux-x86_64.sh-install
4)编辑/var/spool/torque/server_priv/nodes(需要自己建立)加入如下内容
master np=4
node01np=4
........
node09np=4
5)启动pbs_server,pbs_sched,pbs_mom,并把其写到/etc/rc.local里使其能开机自启动。
6)创建队列
[root@master~]#qmgr
createqueuestudents
setqueuestudentsqueue_type=Execution
setqueuestudentsPriority=40
setqueuestudentsresources_max.cput=96:
00:
00
setqueuestudentsresources_min.cput=00:
00:
01
setqueuestudentsresources_default.cput=96:
00:
00
setqueuestudentsenabled=True
setqueuestudentsstarted=True
4、在node0x(x=1-9,计算结点上)
[root@node0xtorque-2.3.0]#./torque-package-clients-linux-x86_64.sh--install
[root@node0xtorque-2.3.0]#./torque-package-mom-linux-x86_64.sh--install
然后启动pbs_mom,把pbs_mom写入/etc/rc.local
1.2TorquePBS使用
1、创建用户在master的root下
useraddtest
passwdtest
输入test密码
到/var/yp下make一下
2、配置普通用户的ssh
sutest
ssh-keygen-tdsa
cd.ssh
catid_pub.dsa>>authorized_keys
chmod600authorized_keys
3、编写作业脚本,见下文
4、启动mpd
mpdboot-n10-fmfa
mfa内容:
master:
4
node01:
4
….
node09:
4
5、提交,查询,删除作业
提交作业:
qsubpbsjob
[test1@masterpbstest]$qsubpbsjob
48.master 作业提交后会有一个作业号
查询作业:
qstat
[test1@masterpbstest]$qstat
删除作业:
qdel作业号
[test1@masterpbstest]$qdel48
2.0PBS服务开启操作流程
我在Dawing上操作成功了!
!
1)在主节点上打开PBS服务
/etc/init.d/pbs_serverstart
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)写脚本vimpbs_fdtd_TE_xyPML_MPI_OpenMP
#!
/bin/bash
#PBS-lnodes=5:
ppn=4 规定使用的节点数nodes以及每个节点能跑多少核ppn
#PBS–Ntaskname 任取一作业任务名taskname
cd$PBS_O_WORKDIR 到工作目录下(此为PBS提供的环境变量)
mpirun-np20./fdtd_TE_xyPML_MPI_OpenMP
执行mpirun一句可以用-machinefile或-p4pg命令参量制定
6)提交
qsubpbs_fdtd_TE_xyPML_MPI_OpenMP
7)可用qstat查看作业任务,具体参量参看下文。
流程终结!
3.0PBS常用命令和选项
3.1基本脚本写法和选项
PBS是ProtableBatchSystem的缩写,是一个任务管理系统。
当多个用户使用同一个计算资源时,每个用户用PBS脚本提交自己的任务,由PBS对这些任务进行管理和资源的分配。
下面是一个简单的PBS脚本:
#!
/bin/bash
#PBS-lnodes=20
#PBS-Nsnaphu
#PBS-joe
#PBS-lwalltime=24:
00:
00
#PBS-lcput=1:
00:
00
#PBS-qdque
cd$PBS_O_WORKDIR
cat$PBS_NODEFILE$PBS_NODEFILE>NODEFILE
mpirun-np./mpitest
将这个脚本保存成submit然后qsubsubmit就将这个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.2PBS命令与选项
PBS提供的4条命令用于作业管理
1.qsub命令:
用于提交作业脚本
命令格式:
qsub [-adate_time]
[-epath][-I] [-lresource_list]
[-Muser_list][-Nname]
[-Spath_list] [-uuser_list]
[-Wadditional_attributes]
例:
#qsubaaa.pbs 提交某作业,系统将产生一个作业号
2.qstat命令:
用于查询作业状态信息
命令格式:
qstat[-f][-a][-i][-n][-s][-R][-Q][-q][-B][-u]
参数说明:
-f jobid列出指定作业的信息
-a 列出系统所有作业
-i 列出不在运行的作业
-n 列出分配给此作业的结点
-s 列出队列管理员与scheduler所提供的建议
-R 列出磁盘预留信息
-Q 操作符是destinationid,指明请求的是队列状态
-q 列出队列状态,并以alternative形式显示
-auuserid 列出指定用户的所有作业
-B 列出PBSServer信息
-r 列出所有正在运行的作业
-Qfqueue 列出指定队列的信息
-u 若操作符为作业号,则列出其状态。
若操作符为destinationid,则列出运行在其上的属于user_list中用户的作业状态。
例:
#qstat-f211 查询作业号为211的作业的具体信息。
3.qdel命令:
用于删除已提交的作业
命令格式:
qdel[-W间隔时间]作业号
例:
#qdel-W15211 15秒后删除作业号为211的作业
4.qmgr命令:
用于队列管理
qmgr-c"createqueuebatchqueue_type=execution"
qmgr-c"setqueuebatchstarted=true"
qmgr-c"setqueuebatchenabled=true"
qmgr-c"setqueuebatchresources_default.nodes=1"
qmgr-c"setqueuebatchresources_default.walltime=3600"
qmgr-c"setserverdefault_queue=batch"