PBS管理系统--torque

更新时间:2024-04-04 06:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

PBS 管理系统

(一)作业提交系统 Torque 个人安装总结(PBS)

PBS 是功能最为齐全,历史最悠久,支持最广泛的本地集群调度器之一。 PBS 的目前包括 openPBS,PBS Pro 和 Torque 三个主要分支。其中 OpenPBS 是最早的 PBS 系统,目前已经没有太多后续开发,PBS pro 是 PBS 的商业版本,功能最为 丰富。Torque 是 Clustering 公司接过了 OpenPBS,并给与后续支持的一个开源 版本。

下面是本人安装 torque 的过程。 一、Torque 安装

在 master(管理结点上)

1、解压安装包

[root@master tmp]# tar zxvf torque-2.3.0.tar.gz

2、进入到解压后的文件夹

./configure --with-default-server=master make

make install

3、

(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 --install

(4)编辑/var/spool/torque/server_priv/nodes (需要自己建立) 加入如下内容 master np=4 node01 np=4 ........ node09 np=4

(5)启动 pbs_server,pbs_sched,pbs_mom,并把其写到/etc/rc.local 里使 其能开机自启动。

(6)创建队列 [root@master ~]# qmgr create queue students

set queue students queue_type = Execution set queue students Priority = 40

set queue students resources_max.cput = 96:00:00 set queue students resources_min.cput = 00:00:01 set queue students resources_default.cput = 96:00:00 set queue students enabled = True set queue students started = True

4、在 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.local

二、Torque PBS 使用

1、创建用户 在 master 的 root 下

useradd test passwd test 输入 test 密码 到/var/yp 下 make 一下

2、配置普通用户的 ssh su test cd

ssh-keygen -t dsa cd .ssh

cat id_pub.dsa >>authorized_keys chmod 600 authorized_keys 3、编写作业脚本

[test1@master t]vi pbsjob

#!/bin/tcsh

#PBS -o /home/test1/pbstest/t/output 标准输出文件

#PBS -e /home/test1/pbstest/t/error 错误输出文件

#PBS -l nodes=5:ppn=4 规定使用的节点数以及每个节点能跑多少核

#PBS –q students 把任务提交到 students 队列中

cd $PBS_O_WORKDIR 到工作目录下(此为 PBS 提供的环境变量)

mpirun –machine $PBS_NODEFILE -np 20 ./vasp

4、启动 mpd

mpdboot -n 10 -f mfa

mfa 内容: master:4 node01:4 ….

node09:4

5、提交,查询,删除作业 提交作业:qsub pbsjob 作业提交后会有一个作业号 [test1@master pbstest]$ qsub pbsjob 48.master

查询作业:qstat

[test1@master pbstest]$ qstat

Job id Name User Time Use S Queue

------------------------- ---------------- --------------- -------- - -------------------------------

48.master pbstest test1 00:00:00 R students 删除作业:qdel 作业号

[test1@master pbstest]$ qdel 48

链接

http://hi.http://www.wodefanwen.com//danganxi521/blog/item/2b23c03db6cea1e93c6d975f.ht ml/cmtid/b4f2450700f2e5c77b89478f

(二)PBS 脚本使用 qsub -N Relax -l nodes=1:ppn=8 pbs

#!/bin/sh

VASP=\ -np 8 avasp < /dev/null \

i=36 times=1000 while((i<=times)) do

cp RStru_$i POSCAR

rm WAVECAR CHG*

./produKPTS.x

$VASP

cp CONTCAR POSCAR

rm WAVECAR CHG*

./produKPTS.x

$VASP

cp CONTCAR POSCAR

rm WAVECAR CHG*

./produKPTS.x

$VASP

cp CONTCAR pos.$i cp OUTCAR out.$i let i=i+1 done

cd /temp/user15/RST1000

./relax.sh >& log

(三)pbs 常用命令和选项

一、基本选项

pbs 是 Protable Batch System 的缩写,是一个任务管理系统。当多个用户使用 同一个计算资源时,每个用户用 PBS 脚本提交自己的任务,由 PBS 对这些任务进 行管理和资源的分配。下面是一个简单的 PBS 脚本: #PBS -l nodes=20 #PBS -N snaphu #PBS -j oe

#PBS -l walltime=24:00:00 #PBS -l cput=1:00:00 #PBS -q dque

cd $PBS_O_WORKDIR

cat $PBS_NODEFILE $PBS_NODEFILE> NODEFILE

mpirun -hostfile NODEFILE -np `cat NODEFILE |wc -l` ./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 查看。

二、简单命令 任务提交后,需要查看任务信息和环境信息,有

如下常用命令。

qstat 查看本用户提交的任务

qstat -n 同上,输出内容稍有不同

qstat -q 查看系统中所有的队列,以及每个队列中任务的运行和等候情况。 showq 查看系统中所有运行的任务。 qdel id 删除 JOBNAME 为 id 的任务。该任务如果在等待,则可以有这个命令删

除,如果已经开始运行,则无法删除。

三、参数传递

qsub submit -l nodes=4 -v x=1,y=2 其中,-l nodes=4 本来就是一个#PBS 选项,既可以放在 submit 文件中,又可以 放到命令行上。 -v x=1,y=2 为一个变量列表,和 shell 命令一样,在 submit 文件中可以用$x,$y 来调用这两值

链接

http://hi.http://www.wodefanwen.com//pkuwwt/blog/item/d6e094b1b910df5c0923022f.html

(四)PBS 命令与使用

PBS(Portable Batch System)是由 NASA 开发的灵活的批处理系统。它被用 于集群系统、超级计算机和大规模并行系统。PBS 主要有如下特征:

易用性:为所有的资源提供统一的接口,易于配置以满足不同系统的需求,

灵活的作业调度器允许不同系统采用自己的调度策略。 ?? 移植性:符合 POSIX 1003.2 标准,可以用于 shell 和批处理等各种环境。 ?? 适配性:可以适配与各种管理策略,并提供可扩展的认证和安全模型。支

持广域网上的负载的动态分发和建立在多个物理位置不同的实体上的虚 拟组织。 ?? 灵活性:支持交互和批处理作业。

??

OpenPBS( http://www.OpenPBS.org/)是 PBS 的 Open Source 的实现。商业 版本的 PBS 可以参照: http://www.pbspro.com/。

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 \qmgr -c \qmgr -c \

qmgr -c \

qmgr -c \qmgr -c \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 可执行程序名 命令详解如下:

Getting Status on the System, Queues, and Jobs Command Short Description list information about queues and jobs Tutorial Using qstat HTML and PS HTML and PS Using qstat Using qstat HTML and PS HTML and PS Using qstat Using qstat Manual Page qstat man page qstat qstat -q list all queues on system qstat man page qstat -Q list queue limits for all queues qstat man page qstat -a list all jobs on system qstat man page qstat -au list all jobs owned by user userid userid qstat man page qstat -s list all jobs with status comments list all running jobs qstat man page qstat -r qstat man page qstat -f list all information known about jobid specified job qstat -Qf list all information known about queue specified queue qstat man page qstat man page

qstat -B List summary information about the PBS server Submitting a Job HTML and PS qstat man page qsub jobscript submit jobscript to PBS Using qsub Using qsub Using qsub qsub man page qsub -I submit an interactive-batch job qsub man page qsub -q queue submit job directly to a specified queue qsub man page Using the Graphical User Interface (GUI) xpbs

Graphical User Interface to PBS commands Using xpbs xpbs man page 链接 http://blog.chinaunix.net/u1/34200/showart_1880946.html

(五)GM 并行作业提交 PBS 脚本

PBS 模板脚本文件路径为:/export/home/pbs/mpich-gm.pbs.pbs

按照如下示例文件,建立 pbs 作业提交脚本,修改红色的部分即可。

#LJRS -S /bin/bash

#LJRS -o script.out

#LJRS -j oe

#LJRS -q dpool

#LJRS -l nodes=8:ppn=1 (nodes:计算节点数,ppn:计算节点 CPU 数)

#LJRS -l walltime=48:00:00 (用户估计的最大计算时间,超时系统会自 动中断作业)

limit -s unlimited

TMPFILE=`whoami`_mpich_gm.tmp

sed 's/c/g/g' $LJRS_NODEFILE > /tmp/$TMPFILE GM_NODEFILE=/tmp/$TMPFILE

echo Working directory is $LJRS_O_WORKDIR

cd $LJRS_O_WORKDIR

echo Runing on host `hostname` echo Starting Time is `date` echo Directory is `pwd`

echo This jobs runs on the following processors:

echo `cat $GM_NODEFILE` NPROCS=`wc -l < $GM_NODEFILE`

echo This job has allocated $NPROCS nodes

## User Parallel Program ###########

mpirun -v -machinefile $GM_NODEFILE -np $NPROCS ~/my_parallel.exe > out (修改为用户的并行作业执行命令)

####################################

rm -f /tmp/$TMPFILE

链接 http://cftcc.iccas.ac.cn/show.aspx?id=25&cid=12

echo Ending Time is `date`

本文来源:https://www.bwwdw.com/article/jbvr.html

Top