PBS实验指导书

  • 格式:doc
  • 大小:87.00 KB
  • 文档页数:13

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PBS实验指导书

1.PBS简介

PBS(Portable Batch System)最初由NASA的Ames研究中心开发,目的是提供一个能满足异构计算网络需要的软件包,特别是满足高性能计算的需要。它力求提供对批处理的初始化和调度执行的控制,允许作业在不同主机间路由。PBS 独立的调度模块允许系统管理员定义资源和每个作业可使用的数量。调度模块存有各个可用的排队作业、运行作业和系统资源使用状况信息,系统管理员可以使用PBS提供的TCL、BACL、C过程语言。PBS的调度策略可以很容易被修改,以适应不同的计算需要和目标。

①PBS的结构及功能。PBS主要由4个部分组成:控制台、服务进程、调度进程和执行进程。控制台实质上由一系列PBS提供的命令构成,PBS同时还提供了图形化界面XPBS,实现了图形界面与PBS命令的映射:服务进程即pbs_server(简称server),是PBS运行的核心,它集中控制整个集群上的作业运作。调度进程即pbs_sched,它包含了作业运行及运行地点和时间的站点控制策略。执行进程即pbs_mom,实际上由它产生所有正在执行的作业。

②调度策略。PBS为了调度那些应该放在执行队列的

作业,提供了一个单独的进程。这是一个灵活的机制,可以实现大量的策略。这个调度程序使用标准的PBS API来和服务器通信,使用一个额外的API来和PBS执行进程通信。通过使用一些额外提供的API,可以增强调度的策略,进而实现一个可替换的调度程序。第一代批处理系统和许多其他的批处理系统都使用大量基于限制作业或控制调度作业的队列。为了按照时间来控制作业的排序,队列会被打开或关闭,或者限制载队列里运行作业的数量;而PBS支持多重队列,并且这些队列有很多其他批处理系统所使用的作业调度属性,PBS服务器本身并不运行作业,也不添加任何限制,这些都是由队列属性实现的。事实上,调度程序仅仅拥有不超过一个有管理员特权的客户端。

控制调度的服务器和队列属性可以通过拥有特权的客户端来调整,这些特权命令是qmgr。然而,这些控制通常驻留在调度程序上,而不是服务器上。这些调度程序必须检查服务器、队列和作业的状态,决定服务器和队列属性的设置。在之后的决策中,调度程序必须使用这些设置。

另一个方法就是whole pool方法,所有的作业都放在一个单独的队列中,调度程序评估每个作业的特点并且决定运行哪一个作业。这些策略能很容易地包括一些因素,如每天的运行时间、系统的装载、作业的大小等。队列里作业的顺序不需要被考虑。这个方法的主要优势在于用户可以根据自

己的主要需求来产生策略,通过调度,使当前的作业更好地适应当前可用的资源。

③PBS系统中的作业执行。PBS系统中的作业执行主要依靠服务进程、调度进程、执行进程等部分,如图3-1,简单的执行过程如下。

a.由客户产生事件,时间通知服务进程开始一个调度周期;

b.服务进程发送一个调度命令给作业调度器;

c.作业调度器向执行过程请求可利用的资源信息;

d.执行做成返回给作业调度器一个资源信息;

e.得到资源信息后,调度器向服务进程请求作业信息;

f.服务进程接受请求,并发送作业信息至作业调度器,产生执行作业的策略;

g.作业调度器发送执行作业请求至服务进程;

h.服务进程接受请求后,发送作业至执行进程执行作业。

图3-1 PBS的执行过程

2.PBS的安装

PBS的安装应该说是一个标准的Linux的tarball安装方式。安装过程主要有如下几个步骤。

①下载PBS的源码包。

OpenPBS-2.3.12sc2.tar

②解压缩软件包。

#tar zxvpf OpenPBS-2.3.12sc2.tar

③进入相应的目录,配置、编译。

#cd SPBS-1.0.0$./configure --docs --disable-gui$make

#make install

其中,选项--enable-docs指定要编译文档,选项

--disable-gui指定去掉图形界面;选项--enable-scp,先使用scp 命令,再使用rcp命令进行数据的复制。

默认情况下,PBS会安装在.usr/spoole/PBS目录下,该目录在./configure的时候指定-prefix。

3.PBS的配置

1)配置server_name

编辑所有的节点的$PBS_HOME/server_name,在里面写入选定的server的主机名,例如:manager

2)配置管理节点

在manager的$PBS_HOME/server_priv目录下建立nodes 文件。

#touch nodes

在nodes文件写入所有mom节点的名称。

bc1n1 np = 4

bc1n2 np = 4

......

bc1n14 np = 4

其中的np代表的是虚拟处理器的个数,实际上也就是该节点最多可以同时运行多少个任务。

3)配置计算节点

为了使计算节点接受管理节点的控制,需编辑每个计算节点$PBS_HOME/mom_priv目录下的config文件,写入如下信息。

$logevent 0x1ff$clienthost manager

$logevent用于指定日志的级别,使用默认值就可以了,$clienthost为指定server的地址。

4.PBS的作业管理

PBS安装配置完毕后需启动服务,可以手动执行启动,也可以载rc.local文件中加入启动脚本,最好按mom、server、sched的顺序启动命令,具体如下。

#/usr/local/sbin/pbs_mom

# /usr/local/sbin/pbs_server -t create

#

/usr/local/sbin /pbs_sched

其中-t create在第一次启动的时候要用,用于创建一些初始化必要的环境,以后启动就不再需要了。

接下来要创建作业队列,PBS中的队列分为两种类型,即执行队列和路由队列,下面是一个创建队列的脚本。