[root@node0x
torque-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
二、TorquePBS使用
2/13
1、创建用户
在master的root下
useraddtest
passwdtest
输入test密码
到/var/yp下make一下
2、配置普通用户的ssh
sutest
cd
ssh-keygen-tdsa
cd.ssh
catid_pub.dsa>>authorized_keys
chmod600authorized_keys
3、编写作业脚本
[test1@mastert]vipbsjob
#!
/bin/tcsh
#PBS-o/home/test1/pbstest/t/output标准输出文件
#PBS-e/home/test1/pbstest/t/error错误输出文件
#PBS-lnodes=5:
ppn=4规定使用的节点数以及每个节点能跑多少核#PBS–qstudents把任务提交到students队列中cd$PBS_O_WORKDI到R工作目录下<此为PBS提供的环境变量)mpirun–machine$PBS_NODEFILE-np20./vasp
4、启动mpd
mpdboot-n10-fmfa
3/13
mfa内容:
master:
4
node01:
4
node09:
4
5、提交,查询,删除作业提交作业:
qsubpbsjob作业提交后会有一个作业
号[test1@masterpbstest]$qsub
pbsjob
48.master
查询作业:
qstat
[test1@masterpbstest]$qstatJobidNameUserTimeUseSQueue
48.masterpbstesttest100:
00:
00Rstudents删除作业:
qdel作业号
[test1@masterpbstest]$qdel48链接
<二)PBS脚本使用
qsub-NRelax-lnodes=1:
ppn=8pbs#!
/bin/sh
4/13
VASP="/home/user15/soft/mpi/bin/mpirun-machinefile$PBS_NODEFILE-np8avasp
i=36times=1000
while((i<=times>>
do
cpRStru_$iPOSCAR
rmWAVECARCHG*
./produKPTS.x
$VASP
cpCONTCARPOSCARrmWAVECARCHG*./produKPTS.x$VASP
cpCONTCARPOSCAR
rmWAVECARCHG*
./produKPTS.x
$VASP
cpCONTCARpos.$i
cpOUTCARout.$i
leti=i+1
done
cd/temp/user15/RST1000
./relax.sh>&log
5/13
<三)pbs常用命令和选项
一、基本选项
pbs是ProtableBatchSystem的缩写,是一个任务管理系统。
当多个用户使用同一个计算资源时,每个用户用PBS脚本提交自己的任务,由PBS对这些任务进行管理和资源的分配。
下面是一个简单的PBS脚本:
#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-hostfileNODEFILE-np`catNODEFILE|wc-l`./mpiTest将这个脚本保存成submit
然后qsubsubmit就将这个mpiTest的任务提交给了系统。
脚本中#PBS为脚本选项,用于设置一些参数。
#PBS-l表示资源列表,用于设定特定任务所需的一些参数。
这里的NODE表S示并行环境下可以使用的节点数,而walltime表示任务最大时限,而cput表示cpu时间的最大时限,运行时间和cpu使用时间超过对应的时限,任务就会以超时退出。
这三个参数不是PBS脚本参数,而是并行环境所需的参数。
#PBS-N表示任务名称#PBS-j表示系统输出,如果是oe,则标准错误输出(stderr>和标准输出(stdout>合并为stdout,如果是eo,则合并为stderr,如果没有设定或设定为n,则stderr和stdout分开。
#PBS-q表示当前任务选用的队列。
在并行环境下,一个系统中往往有多个队列,任务提交后,将在所选的队列中排除等候。
系统中有哪些队列可以用qstat-q查看。
、简单命令任务提交后,需要查看任务信息和环境信息,有如下常用命令。
qstat查看本用户提交的任务
qstat-n同上,输出内容稍有不同
qstat-q查看系统中所有的队列,以及每个队列中任务的运行和等候情况。
showq查看系统中所有运行的任务。
qdelid删除JOBNAM为Eid的任务。
该任务如果在等待,则可以有这个命令删
6/13除,如果已经开始运行,则无法删除。
三、参数传递
qsubsubmit-lnodes=4-vx=1,y=2
其中,-lnodes=4本来就是一个#PBS选项,既可以放在submit文件中,又可以放到命令行上。
-vx=1,y=2为一个变量列表,和shell命令一样,在submit文件中可以用$x,$y来调用这两值
链接
<四)PBS命令与使用
PBS(PortableBatchSystem>是由NASA开发的灵活的批处理系统。
它被用于集群系统、超级计算机和大规模并行系统。
PBS主要有如下特征:
易用性:
为所有的资源提供统一的接口,易于配置以满足不同系统的需求,灵活的作业调度器允许不同系统采用自己的调度策略。
移植性:
符合POSIX1003.2标准,可以用于shell和批处理等各种环境。
适配性:
可以适配与各种管理策略,并提供可扩展的认证和安全模型。
支持广域网上的负载的动态分发和建立在多个物理位置不同的实体上的虚拟组织。
灵活性:
支持交互和批处理作业。
OpenPBS(>是PBS的OpenSource的实现。
商业版本的PBS可以参照:
。
1、PBS命令
PBS提供4条命令用于作业管理。
(1>qsub命令—用于提交作业脚本
命令格式:
qsub[-adate_time][-cinterval][-Cdirective_prefix]
[-epath][-I][-jjoin][-kkeep][-lresource_list][-mmail_options]
[-Muser_list][-Nname][-opath][-ppriority][-qdestination][-rc]
7/13
[-Spath_list][-uuser_list][-vvariable_list][-V][-Wadditional_attributes][-z]
[script]
参数说明:
因为所采用的选项一般放在pbs脚本中提交,所以具体见PBS脚本选项。
例:
#qsubaaa.pbs提交某作业,系统将产生一个作业号
(2>qstat命令—用于查询作业状态信息
命令格式:
qatat[-f][-a][-i][-n][-s][-R][-Q][-q][-B][-u]
参数说明:
-fjobid列出指定作业的信息
-a列出系统所有作业
-i列出不在运行的作业
-n列出分配给此作业的结点
-s列出队列管理员与scheduler所提供的建议
-R列出磁盘预留信息
-Q操作符是destinationid,指明请求的是队列状态
-q列出队列状态,并以alternative形式显示
-auuserid列出指定用户的所有作业
-B列出PBSServer信息
-r列出所有正在运行的作业
-Qfqueue列出指定队列的信息
-u若操作符为作业号,则列出其状态。
若操作符为destinationid,则列出运行在其上的属于user_list中用户的作业状态。
8/13
例:
#qstat-f211查询作业号为211的作业的具体信息
(3>qdel命令—用于删除已提交的作业
命令格式:
qdel[-W间隔时间]作业号
命令行参数:
例:
#qdel-W1521115秒后删除作业号为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"
2、PBS脚本文件
PBS脚本文件由脚本选项和运行脚本两部分组成。
(1>PBS作业脚本选项<若无-C选项,则每项前面加‘#PBS')
-adate_time:
date_time格式为:
[[[[CC]YY]MM]DD]hhmm[.SS]表示经过date_time时间后作业才可以运行。
-cinterval:
定义作业的检查点间隔,如果机器不支持检查点,则忽略此选项。
-Cdirective_prefix:
在脚本文件中以directive_prefix开头的行解释为qsub的命
令选项。
<若无此选项,则默认为'#PBS')
-epath:
将标准错误信息重定向到path
-I:
以交互方式运行
9/13
-jjoin:
将标准输出信息与标准错误信息合并到一个文件join中去。
-kkeep:
定义在执行结点上保留标准输出和标准错误信息中的哪个文件。
keep为o表示保留前者,e表示后者,oe或eo表示二者都保留,n表示皆不保留。
若忽略此选项,二者都不保留。
-lresource_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个处理器。
-mmail_options:
mail_option为a:
作业abort时给用户发信;为b:
作业开始运行发信;为e:
作业结束运行时发信。
若无此选项,默认为a。
-Muser_list:
定义有关此作业的mail发给哪些用户。
-Nname:
作业名,限15个字符,首字符为字母,无空格。
-opath:
重定向标准输出到path。
-ppriority:
任务优先级,整数,[-1024,1023],若无定义则为0.
-qdestination:
destination有三种形式:
queue,@server,queue@server。
-ry|n:
指明作业是否可运行,y为可运行,n为不可运行。
-Sshell:
指明执行运行脚本所用的shell,须包含全路径。
-uuser_list:
定义作业将在运行结点上以哪个用户名来运行。
-vvariable_list:
定义export到本作业的环境变量的扩展列表。
-V:
表明qsub命令的所有环境变量都export到此作业。
-Wadditional_attributes:
作业的其它属性。
-z:
指明qsub命令提交作业后,不在终端显示作业号。
(2>运行脚本同LINUX下一般的运行脚本文件。
10/13
[注]:
脚本文件中的mpirun_rsh命令行中的节点列表文件要用环境变量表
示
$PBS_NODEFIL,E这个环境变量表示由pbs自动分配给作业的节点列表;节点数为命令行中指定的进程数。
格式如下:
mpirun_rsh–np进程数–hostfile$PBS_NODEFILE可执行程序名命令详解如下:
GettingStatusontheSystem,Queues,andJobs
Command
ShortDescription
Tutorial
Manual
Page
qstat
listinformationaboutqueuesandjobs
Usingqstat
qstat
manpage
qstat-q
listallqueuesonsystem
HTMLand
PS
qstat
manpage
qstat-Q
listqueuelimitsforallqueues
HTMLand
PS
qstat
manpage
qstat-a
listalljobsonsystem
Usingqstat
qstat
manpage
qstat-auuserid
listalljobsownedbyuseruserid
Usingqstat
qstat
manpage
qstat-s
listalljobswithstatuscomments
HTMLand
PS
qstat
manpage
qstat-r
listallrunningjobs
HTMLand
PS
qstat
manpage
qstat-fjobid
listallinformationknownabout
specifiedjob
Usingqstat
qstat
manpage
qstat-Qfqueue
listallinformationknownabout
specifiedqueue
Usingqstat
qstat
manpage
11/13
qstat-B
ListsummaryinformationaboutthePBSserver
HTMLand
PS
qstat
manpage
SubmittingaJob
qsubjobscript
submitjobscripttoPBS
Usingqsub
qsubmanpage
qsub-I
submitaninteractive-batchjob
Usingqsub
qsubmanpage
qsub-qqueue
submitjobdirectlytoaspecifiedqueue
Usingqsub
qsubmanpage
UsingtheGraphicalUserInterface(GUI>
xpbs
GraphicalUserInterfacetoPBScommands
Usingxpbs
xpbsmanpage
链接
<五)GM并行作业提交PBS脚本
PBS模板脚本文件路径为:
/export/home/pbs/mpich-gm.pbs.pbs按照如下示例文件,建立pbs作业提交脚本,修改红色的部分即可。
#LJRS-S/bin/bash
#LJRS-oscript.out
#LJRS-joe
#LJRS-qdpool
#LJRS-lnodes=8:
ppn=1计算节点数,ppn:
计算节点CPU数)
#LJRS-lwalltime=48:
00:
00<用户估计的最大计算时间,超时系统会自动中断作业)
limit-sunlimited
TMPFILE=`whoami`_mpich_gm.tmp
12/13sed's/c/g/g'$LJRS_NODEFILE>/tmp/$TMPFILE
GM_NODEFILE=/tmp/$TMPFILE
echoWorkingdirectoryis$LJRS_O_WORKDIR
cd$LJRS_O_WORKDIR
echoRuningonhost`hostname`
echoStartingTimeis`date`
echoDirectoryis`pwd`
echoThisjobsrunsonthefollowingprocessors:
echo`cat$GM_NODEFILE`
NPROCS=`wc-l<$GM_NODEFILE`
echoThisjobhasallocated$NPROCSnodes
##UserParallelProgram###########
mpirun-v-machinefile$GM_NODEFILE-np$NPROCS~/my_parallel.exe>out<修改为用户的并行作业执行命令)
rm-f/tmp/$TMPFILE链接echoEndingTimeis`date`
13/13