PBS作业调度应用与说明(包括qstat -参数等)

PBS作业调度应用与说明(包括qstat -参数等)

 

 转载 : http://bbs.sciencenet.cn/home.php?mod=space&uid=355217&do=blog&id=464900

PBS(Portable Batch System)最初由NASA的Ames研究中心开发,主要为了提供一个能满足异构计算网络需要的软件包,用于灵活的批处理,特别是满足高性能计算的需要,如集群系统、超级计算机和大规模并行系统。PBS的主要特点有:代码开放,免费获取;支持批处理、交互式作业和串行、多种并行作业,如MPI、 PVM、HPF、MPL;PBS是功能最为齐全, 历史最悠久, 支持最广泛的本地集群调度器之一. PBS的目前包括openPBS, PBS Pro和Torque三个主要分支. 其中OpenPBS是最早的PBS系统, 目前已经没有太多后续开发, PBS pro是PBS的商业版本, 功能最为丰富. Torque是Clustering公司接过了OpenPBS, 并给与后续支持的一个开源版本.

PBS的应用不同于一般的直接运行: mpirun –np number ./executable_file

直接运行上句,则只能在单个节点上进行并行计算。如果要在多个节点上并行执行则要写machinefile或p4pgfile,两种文件的具体写法参考张林波等《并行计算导论》。运行命令分别为:

      mpirun –machinefile filename

      mpirun –p4pg filename

应用PBS提交任务则会形成任务队列,依次执行,有效分配资源,避免资源竞争。否则CPU时间片会轮流分配给各个人的任务,从而影响所有人的正常作业。

torque PBS 提供对批处理作业和分散的计算节点(Compute nodes)的控制。

  • 安装Torque组件:在一个节点上(head node)安装pbs_server,所有计算节点上安装pbs_mom,所有计算节点和提交节点上安装PBS客户端。至少做最基本的配置,使Torque系统跑起来,也就是使pbs_server能知道该和哪些机器通话。
  • 在pbs_server上创建一个作业提交队列。
  • 在集群的所有节点上指定一个cluster name作为property。这可以用qmgr命令做到。比如:

                 qmgr -c "set node node properties=cluster-name"。

  • 确保作业可以提交到节点上去。这可以通过使用qsub命令做到。比如:

                echo "sleep 30" | qsub -l nodes=3。

1.0 作业提交系统Torque个人安装总结(PBS) 
1.1 Torque安装(在master管理结点上)
1. 解压安装包

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

1.2 Torque PBS使用 
1、创建用户在master的root下

useradd test

passwd test

输入test密码

到/var/yp下make一下

2、配置普通用户的ssh

su test

ssh-keygen -t dsa

cd .ssh

cat id_pub.dsa >> authorized_keys

chmod 600 authorized_keys

3、编写作业脚本,见下文

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

 

删除作业:qdel 作业号

[test1@master pbstest]$ qdel 48

2.0 PBS服务开启操作流程 
      我在Dawing上操作成功了!!

      1) 在主节点上打开PBS服务

             /etc/init.d/pbs_server start

      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) 写脚本vim pbs_ fdtd_TE_xyPML_MPI_OpenMP

#!/bin/bash

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

#PBS –N taskname                          任取一作业任务名taskname

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

mpirun -np 20 ./fdtd_TE_xyPML_MPI_OpenMP

执行mpirun一句可以用-machinefile或-p4pg 命令参量制定

      6) 提交

              qsub pbs_ fdtd_TE_xyPML_MPI_OpenMP

      7) 可用qstat查看作业任务,具体参量参看下文。流程终结!

3.0 PBS常用命令和选项 
3.1 基本脚本写法和选项 
PBS是Protable Batch System的缩写,是一个任务管理系统。当多个用户使用同一个计算资源时,每个用户用PBS脚本提交自己的任务,由PBS对这些任务进行管理和资源的分配。下面是一个简单的PBS脚本:

#!/bin/bash

#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 -np ./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查看。

     PBS脚本文件由脚本选项和运行脚本两部分组成。

     1)  PBS作业脚本选项(若无-C选项,则每项前面加‘#PBS’)


     2)  运行脚本同LINUX下一般的运行脚本文件格式如下:

        mpirun –np 进程数 ./可执行程序名

3.2 PBS 命令与选项 
PBS提供的4条命令用于作业管理

1. qsub 命令:用于提交作业脚本

命令格式:

qsub      [-a date_time]  

[-e path] [-I]   [-l resource_list]     

[-M user_list] [-N name]

[-S path_list]   [-u user_list]  

[-W additional_attributes]      

例:# qsub aaa.pbs        提交某作业,系统将产生一个作业号

2. qstat 命令:用于查询作业状态信息

命令格式:

qstat [-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"

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习PBS作业调度系统可以按照以下步骤进行: 1. 了解PBS的基本概念:首先,你需要了解PBS(Portable Batch System)的基本概念和工作原理。了解PBS的特点、作业调度流程、资源管理等方面的知识。 2. 学习PBS的命令和使用方法:掌握PBS的命令和使用方法是使用PBS作业调度系统的关键。学习如何提交作业、查询作业状态、取消作业等常用命令。 3. 配置和管理PBS集群:学习如何配置和管理PBS集群,包括节点配置、队列管理、资源限制等。了解如何设置节点属性和资源限制,以便更好地管理和调度作业。 4. 了解PBS的策略和调度算法:学习PBS的策略和调度算法可以帮助你更好地理解作业调度的原理和机制。了解如何设置作业优先级、调整作业队列等,以及如何根据集群资源状况进行调度。 5. 探索高级功能和扩展:进一步学习PBS的高级功能和扩展,如作业依赖关系、作业数组、资源共享等。这些功能可以帮助你更好地管理和控制集群中的计算任务。 6. 实践和应用:通过实践和应用,将学到的知识应用到实际的工作中。提交作业,观察作业的调度和执行情况,分析和优化作业性能。 7. 深入学习其他相关技术:PBS作业调度系统通常与其他技术和工具一起使用,如集群管理工具、资源管理器等。深入学习这些相关技术可以帮助你更好地理解和应用PBS作业调度系统。 通过以上步骤,你可以逐步掌握PBS作业调度系统的基本原理和使用方法,并在实践中不断提高你的技能。同时,可以参考官方文档、教程和在线资源来获取更多的帮助和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值