接下来,我们从PBS系统本身出发,剖析其工作原理,并探讨它如何成为网格计算环境中的“超级调度中枢”。
### 1 引言:网格中的“资源协调”难题
网格环境是什么样的?它就像一批分布在全球各地、性能各异、归属不同的计算机集群。这些计算资源各自独立运行,有的繁忙,有的空闲,配置也千差万别。要让它们协同完成一个大规模计算任务,资源管理便成为一道棘手的难题。
具体难在何处?首先,必须确定每个任务占用多少CPU时间、多少内存;其次,还需在多个并发任务之间合理分配资源,避免厚此薄彼——这便是作业间的资源管理。更复杂的是,一个大型任务可能被拆解为多个子任务,子任务间的资源分配(即作业内资源管理)同样不容忽视。若作业间管理不当,资源分配将失去公平性;若作业内管理失序,任务运行效率会大幅下降,甚至导致任务失败。
正因如此,资源管理成为网格计算研究的重中之重。目前,最成熟的底层资源管理解决方案,就是引入专业的作业管理系统。
### 2 PBS 作业管理系统详解
PBS 的全称是 Portable Batch System,最初由 NASA 的 Ames 研究中心开发。其设计初衷是为了应对异构网络计算环境带来的挑战,尤其是在高性能计算领域。PBS 提供了批处理任务的初始化、调度与执行控制,并支持任务在不同主机间的“路由”传递。
关键亮点在于:PBS 拥有独立的调度模块。系统管理员可以自行定义资源类型以及每个作业可使用的资源限额。调度模块会实时追踪所有排队中的作业、正在运行的作业,以及整个系统的资源占用情况。更值得一提的是,PBS 内置了 TCL、BACL、C 这三种过程语言,管理员可以依据自身计算需求,定制出独一无二的调度策略。这种高度灵活性,在商业作业管理系统中极为罕见。
**PBS 的核心特征可归纳为三点:**
* **易用性**:它为所有资源提供了统一接口,配置不同系统环境的门槛很低。灵活的作业调度器允许各系统采用自定义调度策略。
* **适配性**:能够适配多种管理策略,并提供可扩展的认证与安全模型。更重要的是,它支持广域网上的负载动态分发,可在物理位置不同的多个实体上构建虚拟组织。
* **灵活性**:不仅支持批处理作业,也支持交互式作业,全方位满足用户需求。
一个完整的 PBS 系统由四个主要部分构成:控制台、服务进程、调度进程、执行进程。
其工作流程实质上是服务进程、调度进程与执行进程这三个核心组件之间的相互通信与调用。具体步骤如下:
1. 用户提交一个作业(触发事件)。
2. 事件通知服务进程,一个调度周期开始。
3. 服务进程向调度进程发送调度命令,调度进程随即启动。
4. 调度进程向执行进程请求当前可用资源信息。
5. 执行进程根据本地资源状况,将可用资源信息返回给调度器。
6. 获取资源信息后,调度进程向服务进程请求具体作业信息。
7. 服务进程响应请求,将作业信息发送给调度进程。调度进程依据资源信息和作业信息,生成执行作业的策略。
8. 调度器向服务进程发送执行作业的请求。
9. 服务进程确认后,将作业下发至执行进程,最终执行作业。
### 3 PBS 与网格环境融合:借助 Globus 实现互联
将 PBS 融入网格计算环境,可以实现双赢:PBS 能够触及更广泛的资源,能力大幅提升;而网格计算环境也借助 PBS 扩展了底层计算资源池。这一对接的关键点,是目前全球最重要的网格计算项目之一——Globus。
Globus 项目由美国 Argonne 国家实验室等机构发起,初衷是将美国境内的高性能计算中心通过高速网络连接起来,方便大学和研究机构使用。PBS 与 Globus 的“联姻”,核心目标就是实现彼此计算资源的相互调用。
**PBS 调用 Globus 资源**
当 PBS 需要调用 Globus 资源时,首先要解决资源发现的问题。PBS 的作业描述中必须明确指示它期望获取何种 Globus 资源。为此,我们在作业资源配置描述中加入了特定参数 `-Lsite=globus:resourcename`。这个参数仅作为一个标记,表示作业的“意向”,并不会立即分配资源。
其次,PBS 需要一个专门“窗口”来接收 Globus 的资源请求。作业提交后,其资源请求会像普通作业一样发送到 PBS 服务器。接着,调度器根据请求将作业派发至合适的执行节点。为处理指向 Globus 的请求,启动服务进程时还需额外启动一个 `pbs_mom_globus` 进程。调度器一旦发现作业绑定了特定 Globus 资源请求,就会直接将该作业发往该进程处理。
为使作业能使用 Globus 资源,PBS 作业必须以 Globus 作业的身份进入 Globus。`pbs_mom_globus` 进程负责将 PBS 作业中的参数全部映射为 Globus 可理解的 RSL 格式。
在此调度模型中,PBS 实质上扮演了网格计算环境“入口”的角色。用户只需提交 PBS 作业,即可调用网格资源。Globus 则充当中间件,负责规划网络通信的安全协议,并提供与不同远端资源管理器的通信接口。在数据传输方面,PBS 通过文件 stagein 和 stageout 配合 Globus 的 GASS 服务来解决。
**Globus 调用 PBS 资源**
反过来,Globus 调用 PBS 资源相对简单。用户在 Globus 提交作业时,只需在命令行参数中添加 PBS 服务器的名称和路径,并在命令结尾加上 `jobmanager-PBS` 参数,即可建立 Globus 与 PBS 之间的通信端口。
Globus 提交的作业请求被送至其资源分配管理器(GRAM),Gatekeeper 判断作业需要调用何种资源,并根据 RSL 描述创建相应的任务管理者。当该管理者收到调用 PBS 资源的请求后,会将作业的资源信息发送到 `jobmanager-PBS` 端口。该端口生成一个用 PBS 脚本语言描述的资源信息脚本,然后由管理者将此脚本发送至 PBS 服务器执行。
### 4 PBS 系统测试与结果分析
理论分析之后,实践验证至关重要。我们搭建了一个测试环境来验证这套方案的有效性。
**硬件环境**:为保障稳定性和兼容性,我们选用了 8 台配置完全相同的主机(CPU PII 400MHz,内存 128M SDRAM,操作系统 Linux 9.0)。网络方面,采用 5 类双绞线和一台百兆交换机组成小型局域网。
**软件环境**:主要进行 PBS 的安装与配置,包括系统安装、服务端与执行节点配置、进程启动、作业队列建立等。
**测试内容**:我们提交了一个矩阵相乘的并行作业(A、B 两个 1000×1000 矩阵相乘)。矩阵运算是科学计算中最基础的问题,具有很好的代表性。
**测试过程**:首先编写并行程序(采用并行行列划分算法,MPI 实现),编译后在单机上直接运行,记录结果与耗时。然后编写作业提交脚本,描述资源需求,使用 `qsub` 命令提交作业。通过 `qstat` 命令监控到作业被分配到执行队列并运行,8 个节点全部处于工作状态。程序运行结束后,再次记录结果与耗时。之后,逐步减少执行节点数量,直至单机运行,记录每次的结果与耗时曲线。
测试结果表明:PBS 系统能够正常运行,作业被有效分发至各节点并行执行,并且随着节点数量的减少,执行时间呈现预期的增长趋势。
### 5 结束语
至此,我们探讨了一种适用于集群环境的高效资源分配方案,并给出了详细的设计过程。深入分析了 PBS 系统的内部运行机制、安全机制与调度策略。最关键的是,我们研究了 PBS 系统如何与网格计算环境融合,将 PBS 集群作为网格资源的底层组成部分,并通过 Globus 成功实现了对 PBS 系统资源的作业提交与调度。
这一方案为业界构建更强大、更透明、更易用的网格计算环境,提供了一条清晰可行的技术路径。网格资源高效分配设计方案
接下来,我们从PBS系统本身出发,剖析其工作原理,并探讨它如何成为网格计算环境中的“超级调度中枢”。
### 1 引言:网格中的“资源协调”难题
网格环境是什么样的?它就像一批分布在全球各地、性能各异、归属不同的计算机集群。这些计算资源各自独立运行,有的繁忙,有的空闲,配置也千差万别。要让它们协同完成一个大规模计算任务,资源管理便成为一道棘手的难题。
具体难在何处?首先,必须确定每个任务占用多少CPU时间、多少内存;其次,还需在多个并发任务之间合理分配资源,避免厚此薄彼——这便是作业间的资源管理。更复杂的是,一个大型任务可能被拆解为多个子任务,子任务间的资源分配(即作业内资源管理)同样不容忽视。若作业间管理不当,资源分配将失去公平性;若作业内管理失序,任务运行效率会大幅下降,甚至导致任务失败。
正因如此,资源管理成为网格计算研究的重中之重。目前,最成熟的底层资源管理解决方案,就是引入专业的作业管理系统。
### 2 PBS 作业管理系统详解
PBS 的全称是 Portable Batch System,最初由 NASA 的 Ames 研究中心开发。其设计初衷是为了应对异构网络计算环境带来的挑战,尤其是在高性能计算领域。PBS 提供了批处理任务的初始化、调度与执行控制,并支持任务在不同主机间的“路由”传递。
关键亮点在于:PBS 拥有独立的调度模块。系统管理员可以自行定义资源类型以及每个作业可使用的资源限额。调度模块会实时追踪所有排队中的作业、正在运行的作业,以及整个系统的资源占用情况。更值得一提的是,PBS 内置了 TCL、BACL、C 这三种过程语言,管理员可以依据自身计算需求,定制出独一无二的调度策略。这种高度灵活性,在商业作业管理系统中极为罕见。
**PBS 的核心特征可归纳为三点:**
* **易用性**:它为所有资源提供了统一接口,配置不同系统环境的门槛很低。灵活的作业调度器允许各系统采用自定义调度策略。
* **适配性**:能够适配多种管理策略,并提供可扩展的认证与安全模型。更重要的是,它支持广域网上的负载动态分发,可在物理位置不同的多个实体上构建虚拟组织。
* **灵活性**:不仅支持批处理作业,也支持交互式作业,全方位满足用户需求。
一个完整的 PBS 系统由四个主要部分构成:控制台、服务进程、调度进程、执行进程。
其工作流程实质上是服务进程、调度进程与执行进程这三个核心组件之间的相互通信与调用。具体步骤如下:
1. 用户提交一个作业(触发事件)。
2. 事件通知服务进程,一个调度周期开始。
3. 服务进程向调度进程发送调度命令,调度进程随即启动。
4. 调度进程向执行进程请求当前可用资源信息。
5. 执行进程根据本地资源状况,将可用资源信息返回给调度器。
6. 获取资源信息后,调度进程向服务进程请求具体作业信息。
7. 服务进程响应请求,将作业信息发送给调度进程。调度进程依据资源信息和作业信息,生成执行作业的策略。
8. 调度器向服务进程发送执行作业的请求。
9. 服务进程确认后,将作业下发至执行进程,最终执行作业。
### 3 PBS 与网格环境融合:借助 Globus 实现互联
将 PBS 融入网格计算环境,可以实现双赢:PBS 能够触及更广泛的资源,能力大幅提升;而网格计算环境也借助 PBS 扩展了底层计算资源池。这一对接的关键点,是目前全球最重要的网格计算项目之一——Globus。
Globus 项目由美国 Argonne 国家实验室等机构发起,初衷是将美国境内的高性能计算中心通过高速网络连接起来,方便大学和研究机构使用。PBS 与 Globus 的“联姻”,核心目标就是实现彼此计算资源的相互调用。
**PBS 调用 Globus 资源**
当 PBS 需要调用 Globus 资源时,首先要解决资源发现的问题。PBS 的作业描述中必须明确指示它期望获取何种 Globus 资源。为此,我们在作业资源配置描述中加入了特定参数 `-Lsite=globus:resourcename`。这个参数仅作为一个标记,表示作业的“意向”,并不会立即分配资源。
其次,PBS 需要一个专门“窗口”来接收 Globus 的资源请求。作业提交后,其资源请求会像普通作业一样发送到 PBS 服务器。接着,调度器根据请求将作业派发至合适的执行节点。为处理指向 Globus 的请求,启动服务进程时还需额外启动一个 `pbs_mom_globus` 进程。调度器一旦发现作业绑定了特定 Globus 资源请求,就会直接将该作业发往该进程处理。
为使作业能使用 Globus 资源,PBS 作业必须以 Globus 作业的身份进入 Globus。`pbs_mom_globus` 进程负责将 PBS 作业中的参数全部映射为 Globus 可理解的 RSL 格式。
在此调度模型中,PBS 实质上扮演了网格计算环境“入口”的角色。用户只需提交 PBS 作业,即可调用网格资源。Globus 则充当中间件,负责规划网络通信的安全协议,并提供与不同远端资源管理器的通信接口。在数据传输方面,PBS 通过文件 stagein 和 stageout 配合 Globus 的 GASS 服务来解决。
**Globus 调用 PBS 资源**
反过来,Globus 调用 PBS 资源相对简单。用户在 Globus 提交作业时,只需在命令行参数中添加 PBS 服务器的名称和路径,并在命令结尾加上 `jobmanager-PBS` 参数,即可建立 Globus 与 PBS 之间的通信端口。
Globus 提交的作业请求被送至其资源分配管理器(GRAM),Gatekeeper 判断作业需要调用何种资源,并根据 RSL 描述创建相应的任务管理者。当该管理者收到调用 PBS 资源的请求后,会将作业的资源信息发送到 `jobmanager-PBS` 端口。该端口生成一个用 PBS 脚本语言描述的资源信息脚本,然后由管理者将此脚本发送至 PBS 服务器执行。
### 4 PBS 系统测试与结果分析
理论分析之后,实践验证至关重要。我们搭建了一个测试环境来验证这套方案的有效性。
**硬件环境**:为保障稳定性和兼容性,我们选用了 8 台配置完全相同的主机(CPU PII 400MHz,内存 128M SDRAM,操作系统 Linux 9.0)。网络方面,采用 5 类双绞线和一台百兆交换机组成小型局域网。
**软件环境**:主要进行 PBS 的安装与配置,包括系统安装、服务端与执行节点配置、进程启动、作业队列建立等。
**测试内容**:我们提交了一个矩阵相乘的并行作业(A、B 两个 1000×1000 矩阵相乘)。矩阵运算是科学计算中最基础的问题,具有很好的代表性。
**测试过程**:首先编写并行程序(采用并行行列划分算法,MPI 实现),编译后在单机上直接运行,记录结果与耗时。然后编写作业提交脚本,描述资源需求,使用 `qsub` 命令提交作业。通过 `qstat` 命令监控到作业被分配到执行队列并运行,8 个节点全部处于工作状态。程序运行结束后,再次记录结果与耗时。之后,逐步减少执行节点数量,直至单机运行,记录每次的结果与耗时曲线。
测试结果表明:PBS 系统能够正常运行,作业被有效分发至各节点并行执行,并且随着节点数量的减少,执行时间呈现预期的增长趋势。
### 5 结束语
至此,我们探讨了一种适用于集群环境的高效资源分配方案,并给出了详细的设计过程。深入分析了 PBS 系统的内部运行机制、安全机制与调度策略。最关键的是,我们研究了 PBS 系统如何与网格计算环境融合,将 PBS 集群作为网格资源的底层组成部分,并通过 Globus 成功实现了对 PBS 系统资源的作业提交与调度。
这一方案为业界构建更强大、更透明、更易用的网格计算环境,提供了一条清晰可行的技术路径。相关推荐
补充同频道和同主题内容,方便继续浏览更多相关内容。
同类最新
继续查看同栏目最近更新的文章。
随意投简历害人害己求职者需避免盲目投递
在招聘会现场,不少毕业生的求职方式令人担忧——他们几乎是在“无差别海投”简历。只要专业、学历等硬性条件基本匹配,便盲目递出简历,至于岗位是否适合自己、自己是否真正有意向,往往被抛到脑后。 一位姓孙的应届生,仅一上午就投出了30多份简历。他自嘲这是“广撒网”。但从现场交流来看,抱持这种心态的毕业生,大
你投递简历后无回音的常见原因与改善方法
投了无数简历却石沉大海,这种挫败感想必不少求职者都深有体会。其实问题往往出在细节上——不是你不优秀,而是你的简历和职位之间的“匹配度”出了问题。下面几个原因,看看你踩中了哪几个。 1 申请的职位与本身实力不相符 所谓高不成低不就,在这里可以这样理解:对方招聘一个文员,只要求中专学历,您作为计算机硕
国考面试反套路答题高分技巧速成指南
公务员面试,本质上是考生迈入体制前的最后一道关卡。然而不少人在备考时容易陷入“套路化”答题的误区,这种回答方式看似面面俱到,实则空洞无物,堪称面试过程中的大忌。今天我们就结合一道典型真题,深入剖析“套路化”作答究竟哪里出了问题,以及如何实现真正的“反套路”突破。 题目:我市要组织一次以外来务工人员为
钻石法则让简历闪光的关键技巧
一、工作经验是核心 人力资源经理在审阅简历时,最为关注的核心始终是您的工作经验。填写这部分内容时,务必投入足够精力,详细描述您曾担任的职位、具体职责以及所取得的成果。切勿仅罗列职位名称——详实的工作内容和实际业绩,才是打动HR的关键要素。 二、自我评价要抢眼 调查显示,HR在浏览简历时,往往首先关注
医疗卫生招聘面试记忆性题型答题技巧
医疗卫生招聘面试中,确实存在一类“模板化”题目——答案相对固定,本质上考查的是考生的记忆能力。例如直接提问专业知识点,掌握就能得分,不熟就可能卡壳。许多考生遇到这类题目容易紧张,其实只要掌握合适的技巧,反而能稳妥拿分。下面从题型特征和记忆策略两个维度进行拆解,帮助大家牢牢抓住这部分分数。 一、题型简
