工作负载管理器和调度器PBSProfessional简介 负载均衡调度算法

http://www.ibm.com/developerworks/cn/grid/gr-pbspro/index.html

级 别: 中级

Vladimir Silva (vladimir_silva@hotmail.com),顾问, Lockheed-Martin

2007 年 11 月 01 日

本文介绍 PBS Professional,这是 Altair 的工业强度的 OpenPBS版本,是一种工作负载管理器和调度软件。学习基本知识,将 OpenPBS 与 PBS Professional 进行比较,了解 PBSProfessional 如何胜过其他一些工作负载管理系统,并简单来看一下将 PBS Professional 用于 Globus网格服务。

基本知识

PBS Professional是一个用于复杂和高性能计算环境(比如网格)的工作负载管理器和调度器。可以使用它来简化作业提交、跨多个平台集群分布工作负载,以及扩展到数百甚至数千个处理器。本文将概述 PBS Professional 用于满足组织需求的功能。它在单个或成组在一起的多个系统中支持作业。PBSProfessional 的功能包括:

作为一个调度器,PBS Professional 使用复杂的管理策略和调度算法来获得诸如此类的功能:

PBS Professional 中有 4 个主要的组件:

在典型的集群配置中,pbs_mom将运行在作业将要运行在其上的每一个系统上。服务器和调度器可运行在相同的机器上,客户端命令可放置在将提交作业的机器上。PBSProfessional 为想要实现其自己的调度策略的站点提供一个应用程序编程接口 (API)。





回页首


调度算法

调度是给予线程或进程访问系统资源(比如处理器时间)的方法。这通常用于有效地使系统达到负载平衡。调度是任何工作负载管理软件的核心,它源于大多数现代系统需要一次执行多个进程。PBS Professional 支持以下调度算法:





回页首


PBSProfessional 守护程序

当系统引导时,守护程序就会启动,用户就可以将作业提交到 PBS Professional队列中。然而,作业会被防止运行,直到管理员使用命令 # qmgr -c "set server scheduling =True" 手动启动调度进程。

守护程序可由系统管理员通过以下序列手动启动,也可使用提供的服务启动脚本来启动:

# export PATH=$PATH:/usr/pbs/bin:/usr/pbs/sbin# pbs_mom# pbs_server -t create (first time only)# pbs_sched

第一行设置到 PBS 二进制文件的路径,pbs_mom 启动执行服务器。只有第一次才用 (-tcreate) 选项启动服务器,以初始化各种文件。但是更快的方式是简单地发出系统管理员命令:

[root@sharky pbs]# service pbs startStarting PBS daemons:Starting pbs_mom:                                          [  OK  ]Starting pbs_sched:                                        [  OK  ]Starting pbs_server:                                       [  OK  ]





回页首


配置执行队列

为了快速开始,应该创建一个默认的队列(如果还没有的话)用于提交作业。可由系统管理员使用命令行队列管理器 (qmgr)来完成这件事情。

# qmgrMax open servers: 4Qmgr: create queue dque queue_type=eQmgr: s q dque enabled=true, started=trueQmgr: s s scheduling=trueQmgr:





回页首


提交作业

PBS Professional 作业是一个 shell脚本,其中包含资源需求、作业属性和您想要执行的命令集合。存在很多可用的选项,下面这个示例脚本中显示了一些最常用的选项:


清单 1. 一个普通的 PBS作业提交脚本
                #!/bin/sh## Specifying system resources: wall clock time, memory, # of CPUs# Time format:#       [[hours:]minutes:]seconds[.milliseconds]## Size format: integer[suffix]# Where: #       b or w bytes or words#       kb or kw Kilo (1024) bytes or words#       mb or mw Mega (1,048,576) bytes or words#       gb or gw Giga (1,073,741,824) bytes or words# #PBS -l walltime=1:00:00#PBS -l mem=400mb#PBS -l ncpus=4# Running Multi-node Jobs#PBS  -l nodes=node1,node2# Merging output(o) and error(e) files#PBS -j oe## Staging (moving) input/output files around# PBS uses rcp or scp (or cp if the remote host is the local host) # to perform transfers. Hence stage-in and stage-out are just:#       rcp -r remote_host:remote_file local_file  #       rcp -r local_file remote_host:remote_file # If using SSH:#       scp -r user@remote_host:remote_file localfile#       scp -r local_file user@remote_host:remote_file##PBS -W stagein=user1@server:/path/f1.dat,user11@server:/path/f2.dat#PBS -W stageout=user1@server:/path/o1.dat,user11@server:/path/o2.dat# # Email options# -M email address# -m email when: #       a = on abort, b = on execution, e= on termination, n = never#PBS -M email@address#PBS -m a## Submission queue name @ host name#PBS -q queue_name@host## Account Name or project description#PBS -A project descriptionmy_executable

很多选项可以在命令行中指定,但是在脚本本身中指定更加容易且更加用户友好。要提交脚本,可使用(qsub) 命令:

$ qsub myscript.sh1637.cluster.acme.com

成功提交作业之后,PBS Professional 会返回一个作业标识符(在本例中是1637.cluster.acme.com)。这是作业的句柄,形式为sequence-number.servername.domain。作业标识符对于任何涉及作业的动作都是必需的,这些动作包括检查作业状态、修改作业、跟踪作业或者删除作业,等等。

当用户从一个不是 PBS Server 运行所在的系统提交作业时,需要系统级别的用户授权。这是 PBS Professional运行作业并返回结果所必需的。要完成这一点,必须使用远程 shell(比如 RSH 或 SSH)跨集群授予用户权限。RSH本质上是不安全的,所以建议您启用 PBS 以使用 SSH。这将需要为集群中每台机器上的每个用户设置 SSH 密钥。





回页首


检查作业状态

qstat 命令用于请求作业、队列和 PBS Server的状态。所请求的状态被写到标准输出(通常是用户的终端)。只有具有用户查看特权的作业才会显示。


清单 2. qstat 命令的输出
                $qstat -ahost1:                                                             Req'd  Req'd   ElapJob ID          Username Queue    Jobname    SessID NDS TSK Memory Time  S Time--------------- -------- -------- ---------- ------ --- --- ------ ----- - -----16422.host1     phe      nysdec   touchfiles    --    1   1    --  01:00 W   -- 16423.host1     css      nysdec   touchfiles    --    1   1    --  01:00 W   -- 16432.host1     hnf      romo     30cc.mar29  13739   1   8    --  160:0 R 82:4916434.host1     hnf      romo     30cc.jun28  15446   1   8    --  160:0 R 82:4416440.host1     hnf      romo     03wus.mar2  22232   1   8    --  150:0 R 81:5916441.host1     hnf      romo     03wus.jun2  22317   1   8    --  150:0 R 81:59

作业状态简写为单个字符:

E: Job is exiting after having run.H: Job is held.Q: Job is queued, eligible to run or be routed.R: Job is running.T: Job is in transition (being moved to a new location).W:  Job is waiting for its requested execution time to be reached.S: Job is suspended.




回页首


PBSProfessional GUI:xpbs

PBS 图形用户界面叫做 xpbs。它提供一个到 PBS 命令的用户友好的 point-and-click 界面。xpbs 使用tcl/tk 图形工具套件,提供与 PBS 命令行界面命令相同的功能。


图 1. xpbs 主 GUI


当单击主 xpbs 窗口中的 Submit 时,就会启动 Submit Job 对话框(参见图 2)。该对话框由4 个不同的区域组成。作业脚本文件区域位于左上角。选项区域包含各种用于设置作业属性的窗口小部件,分散在对话框的两边。xpbs 建立于PBS 客户端命令之上,所以命令行界面的所有特性都可以通过 GUI 获得。使用 xpbs 执行的每个任务都被转换成必要的 PBS命令,并代表用户执行该命令。


图 2. xpbs 作业提交对话框


在右上角的面板中键入您想要运行的命令,并在 Stdout File Name 文本框中输入一个输出文件名,然后单击Confirm submit。不要作为 root 用户运行任何作业 — 否则会看到错误消息 “Bad UID forjob execution”。

尝试以 root 之外的任何其他用户在 xpbs 中运行一个作业,应该会看到消息4.[my_host_domain],这表明已成功提交。对于这个特定的作业,date 命令的输出将会保存到 /tmp/foo.txt中。





回页首


哪个版本的 PBS最适合您?

这取决于您的组织的目标。下面是 OpenPBS 和 PBS Professional 之间的一个简单比较。

OpenPBS 和 PBS Professional
可伸缩性和故障容忍 — OpenPBS 在最多 32 个节点上处理数百个作业。扩展到超过这一极限将会导致故障容忍问题。PBSProfessional 可以扩展到数千个 CPU 和最多 10,000 个作业。
OpenPBS
可在 GNU Public License (GPL) 下免费使用。源代码也是可用的。
PBS Professional
  1. 企业质量故障容忍和可靠性 — 故障容忍也叫做故障弱化(gracefuldegradation),就是允许计算机系统在它的一些组件出现故障的情况下仍然继续正确地操作。
  2. 多平台支持 — 只有 PBS Professional 运行在多种风格的 UNIX® 及 Windows®上。(OpenPBS 不运行在 Windows 上。)
  3. 桌面时间获取 — 时间获取使得本地区域(通常类似于硬件配置中的集群)中的桌面机器可作为一个计算平台可用。
  4. 占先调度 — 能够抢先或停止一个当前调度的任务,以便优先执行一个更高优先权的任务。
  5. 计数和作业统计包 —计数功能允许按资源(即计算节点)、作业、用户和其他对象来跟踪资源使用情况。该计数功能可与资源管理器提供的计数功能一起使用。
  6. 电话和 e-mail 技术支持。
  7. 商业许可。

正如您所见,OpenPBS 对于小型的、少于 32 个 CPU的低成本集群来说是一个不错的平台,在这样的环境中,故障容忍和可靠性都不是问题。对于具有数千个 CPU 的工业级集群来说,PBSProfessional 是更佳的选择。





回页首


PBSProfessional 如何优于其他工作负载管理系统?

本文不会详细比较各种网格调度器。但是将简单地比较 PBS Professional和其他一些调度器。记住,每个调度器都不是到处都适用的。每个调度器都是在不同的场景下适用于不同的目的。


表 1. 比较
特 性OpenPBSPBS ProfessionalCondorSGE说 明
可伸缩性 — CPU 和作业的数量32 个节点,数百个作业数千个节点,10,000 个作业数千个节 点,10,000 个作业数千个节点,10,000 个作业由 于故障容忍性问题,OpenPBS 不能很好地伸缩。
平台UNIXUNIX、WindowsUNIX、WindowsUNIX
企业质量故障容忍和可靠性NYYY
桌面时间获取NYYN为让桌面计算机可作为计算平台可用。
占先调度NYNN为停止当前调度的任务,以便执行更高优先权的任务。
计数和作业统计NYYY为按照计算节点、作业、用户和其他对象跟踪资源使用情况。
技术支持NYNN
许可GPL商业GPLGPL

每个组织都具有其独特的需求和目标。具有低预算和一些支持 UNIX的服务器的组织(比如研究机构、教育部门实验室),无疑喜欢使用诸如 Condor、SGE 或 OpenPBS之类的开放源码调度器。商业组织需要安全性、故障容忍和工业强度,使用 PBS Professional或类似的商业产品会更好一些。





回页首


用 Globus和网格服务增强 PBS Professional

下面很快地来看一下如何可以将 PBS Professional 与 Globus Toolkit (GT4)之类的网格服务软件一起使用。GT4 除了提供服务之外,还提供了 Master Managed Job Factory Service(MJFS),也叫做 Job Manager。它的功能是为请求和使用远程系统资源提供单个界面,以便执行作业。这些界面叫做WS-Globus Resource Allocation Manager (WS-GRAM),设计来提供一个灵活的界面,以增强PBS 之类的调度系统。

定制 PBS JobManager

文件 $GLOBUS_LOCATION/lib/perl/Globus/GRAM/JobManager/pbs.pm 中包含Globus 在提交作业到后端调度器时使用的配置选项。下图显示了针对 GT4 的 PBS配置选项。这些选项可能必须更改成匹配您的集群配置。例如,一些集群可能使用 SSH 或 RSH。


图 3. WS-GRAM PBS 配置脚本


对于单个执行系统,mpirun 必须设置为 no,cluster 必须是0(单个执行)。如果没有在单个执行系统上将 cluster 变量设置为 0,将会出现以下错误:“Job failed: Theexecutable could not be started.”。

工作原理

Globus WS-GRAM 服务能够安全地将作业提交到很多类型的作业调度器。WS-GRAM 被构建来支持 XML加密和签名。它使用数字证书在客户机和服务器之间发送安全的 XML SOAP 消息。WS-GRAM 将大多数流行的调度器(比如PBS、Condor、Platform LSF 和 IBM® Tivoli® Workload SchedulerLoadLeveler®)打包到单个 Perl API 中。这个 API 然后又由 WS-GRAM 调用,WS-GRAM负责分配资源、提交作业、查询作业状态和获得作业输出。WS-GRAM 中的作业文件用 XML 定义。例如:


清单 3. 针对提交 PBS /bin/date 命令到 staff队列的 WS-GRAM 作业文件
工作负载管理器和调度器PBSProfessional简介 负载均衡调度算法
                <job>    <executable>/bin/date</executable>    <directory>${GLOBUS_USER_HOME}</directory>    <argument></argument>    <stdout>${GLOBUS_USER_HOME}/stdout</stdout>    <stderr>${GLOBUS_USER_HOME}/stderr</stderr>    <queue>staff</queue>    <fileCleanUp>        <deletion>            <file>file:///${GLOBUS_USER_HOME}/stderr</file>        </deletion>        <deletion>            <file>file:///${GLOBUS_USER_HOME}/stdout</file>        </deletion>    </fileCleanUp></job>

WS-GRAM 文件将提交 /bin/date 命令到 staff 队列。要运行该文件,可以像下面这样使用globusrun-ws 命令:


清单 4. 到 PBS 集群的 WS-GRAM作业提交
                globusrun-ws -submit -s -Ft PBS  -factory https://myhost:8443/wsrf/services/ManagedJobFactoryService  -f pbs.xmlDelegating user credentials...Done.Submitting job...Done.Job ID: uuid:272c8c7c-cfcf-11da-9061-00065ba4e6beTermination time: 04/20/2006 18:05 GMTCurrent job state: ActiveCurrent job state: CleanUp-HoldMonday August 06 2007Current job state: CleanUpCurrent job state: DoneDestroying job...Done.Cleaning up any delegated credentials...Done.

-submit 参数告诉服务使用文件 pbs.xml执行一次作业提交。(-s)参数告诉服务器将标准输出发回客户机,这对于短的作业是很有用的。另一方面,长时间运行的作业可以用批量模式提交。(-FtPBS) 参数告诉 WS-GRAM 将作业提交到 PBS 集群。为了完成这些工作,GT4 必须安装在提交主机上。

为何在 PBSProfessional 之上使用 WS-GRAM?

安装 GT4 以增强 PBS Professional 是困难且费时的,那么为何还要使用它呢?GT4在某些情形下可以提供明显的增强:

  1. WS-GRAM 服务通过加密的网格服务提供安全的作业提交。某些组织需要高级别的安全。通过使用WS-GRAM,服务调用被使用消息级别的安全性和数字证书进行加密。
  2. 单点登录和授权 —复杂组织需要多个小组之间的通信级别。这些小组可能是本地的,也可能是远程的。这提出了身份验证挑战,因为用户可能需要登录到本地/远程资源或者授权凭证,才能有效地完成自己的工作。WS-GRAM 构建在 Grid Security Infrastructure (GSI)之上,用于单点登录和在多个虚拟组织之间授权。
  3. 异构环境下的可伸缩性 — 如果您的组织涉及到多个环境,具有 Condor 或 Platform LSF 之类的多个调度器,那么GT4 可提供事实上的中间件,以将各不相同的多个系统集成为单个网格计算系统。

因此,具有多个调度器集群的组织可以受益于 GT4 提供的集成。当安全性是主要关注的问题时,GT4 也是很有用的。





回页首


结束语

本文简单介绍了 PBSProfessional,这是一个集群基础设施软件,可用于在网格和高性能计算环境中简化作业提交,以及管理和调度工作负载。

  

爱华网本文地址 » http://www.aihuau.com/a/25101012/117410.html

更多阅读

如何配置SQL Server 2008管理器 sqlserver2008配置

如何配置SQL Server 2008管理器——简介SQl Server 配置管理器(简称为配置管理器)包含了SQL Server 2008服务、SQL Server 2008网络配置和SQL Native Client配置3个工具,供数据库管理人员做服务器启动停止与监控、服务器端支持的网络协

vs2013解决方案资源管理器怎样靠左 vs2015解决资源管理器

vs2013解决方案资源管理器怎样靠左——简介用着 vs2013 编写代码,解决方案资源管理器一直是在左边的,有天突然跑到另一边去了,而且 ,自己拖来拖去怎么也拖不好,这该怎么办呢?vs2013解决方案资源管理器怎样靠左——工具/原料vs2013vs2013

Excel名称管理器配合数据有效性一起使用 excel2013名称管理器

Excel名称管理器配合数据有效性一起使用——简介数据有效性做为Excel里面强大的功能,自然不必多说,很多情况我们都需要用到它。而名称管理器可能就没多少人知道了,其实,这也是个很实用的功能。下面,我就介绍一下名称管理器与数据有效性的

internet信息服务IIS 管理器在哪里 iis信息服务管理器

internet信息服务(IIS)管理器在哪里——简介刚开始学习asp时,由于建立测试网站测试代码,但却总是不知道IIS在哪打开。下面介绍打开IIS管理器的简要步骤。internet信息服务(IIS)管理器在哪里——工具/原料

教你打开任务管理器的多种方法 精 无法打开任务管理器

教你打开任务管理器的多种方法 精——简介 任务管理器是经常要用到的程序,在任务管理器中所有的程序和服务都显示了出来,我们可以了解系统正在运行着哪些程序和服务,我们也可以用它来结束一些程序和服务。而且有一些恶意的软件并不能被

声明:《工作负载管理器和调度器PBSProfessional简介 负载均衡调度算法》为网友熏眼眸印温柔分享!如侵犯到您的合法权益请联系我们删除