网格计算环境为用户提供了强大的计算资源,将PBS融入到网格的计算环境中可以使PBS访问到更多的计算资源,使PBS的资源提供能力得到很大的增强,使用户可以调用不同的管理域的资源如同使用本地资源一样。同时PBS融入到网格计算环境也扩展了网格计算环境自身的计算资源。下面以PBS与目前全球重要的网格计算项目Globus之间的结合,介绍它们之间资源调度、数据传输、安全认证等方面的解决方案。
Globus项目是美国Argonne国家实验室等科研单位的研发项目,发起于20世纪90年代中期。Globus项目是目前全球重要的网格计算项目之一,其最初的目的是希望把美国境内的各个高性能计算中心通过高性能网络连接起来,方便美国的大学和研究机构使用,提高高性能计算机的使用效率。PBS与Globus的结合,主要目的是可以达到彼此计算资源的相互调用,PBS对Globus资源调用的实现,可以为用户提供访问网格计算资源建立一个门户。用户通过提交作业,可以像调用PBS资源一样调用远端的不同管理域下的资源。Globus则负责提供与底层不同资源管理者的接口,以及相应的数据传输、安全认证、资源调度等策略。Globus对PBS资源调用的实现,则扩展了网格计算环境下底层的计算资源2。通过结合,目的是实现网格计算环境的基本模型。当PBS调用Globus资源时,首先需要解决的是资源的发现,PBS要对Globus资源进行调度使用,那么在提交的作业当中必须对作业的可用资源说明进行描述,使其可以寻找到Globus的资源,并加以利用。为了达到资源指定的目的,在作业资源需求描述中我们加入特定的参数“-Lsite=globus:resourcename”。这个参数仅仅是标记了作业对资源需求的期望,并未分配Globus资源。其次需要提供一个资源请求信息的接收端口,申请得到Globus资源的作业会像正常的PBS提交作业一样,将自己的资源请求发送到PBS服务器上等待服务进程的处理,之后调度进程会根据作业的资源请求将作业传送到与它资源匹配的执行节点,并由各节点的执行进程运行。为了提供一个专门的接收Globus资源请求的端口,在启动服务进程的同时要启动一个pbs_mom_globus,进程。当调度器发现了作业特定的Globus资源请求,直接将作业发送到pbs_mom_globus进程进行处理。为了可以利用Globus资源,PBS作业必须以Globus作业的形式进入到Globus进行资源的利用,通过pbs_mom_globus进程将作业中PBS的参数全部映射成GlobusRSL的形式3。
在整个资源调度的过程中,PBS实际充当了网格计算环境的入口点,通过提交PBS作业可以实现对网格计算资源的调用,用户可以像使用本地资源一样去使用远端不同资源管理者下的资源。而Globus作为一种中间件,由它来负责规划网络间通信的安全协议,并实现对不同的远端资源管理者的通信接口。此外,PBS通过文件stagein和stageout配合Globus的GASS服务来进行数据的传输,可以解决PBS与Globus数据传输的问题。全局二级存储服务GASS(GlobalAccesstoSecondaryStorage)主要用来支持网格环境下的远程I/O问题,并针对网格计算环境中的文件访问模式进行了优化支持。当Globus调用PBS资源时,相对PBS对Globus资源的调用要简单一些。Gloubs在本地提交Globus作业时,通过在命令行参数中添加PBS服务器的名称及路径来指定需要调用的PBS资源,并在命令结尾添加jobmanager-PBS参数开启Gloubsy与PBS之间的端口。Globus提交作业的请求被送到GRAM,Gatekeeper判断作业需要调用的资源,并根据RSL描述解析出的任务分配参数传递给新创建的任务管理者。任务管理者接到需要调用PBS资源的请求,则将作业资源信息的描述发送到jobmanager-PBS端口,jobmanager-PBS端口会产生一个新的用PBS脚本语言描述资源信息的作业脚本。任务管理者将这个脚本发往PBS服务器进行执行。4PBS系统测试与分析
硬件环境的配置方面,首先要选择一组适合实验过程的主机搭建实验环境。出于对实验稳定性与兼容性的考虑,我们选取了8台硬件与软件配置完全一样的主机,硬件配置为:CPUPⅡ400MHZ内存128SDRAM;操作系统为:Linux9.0。这样便于对PBS系统整体性能测试。其次对于主机间的通信,为了提供一个快速稳定的网络环境,我们采用以太网的技术用5类双绞线和一台百兆交换机将这8台机器组成一个小型局域网环境,并进行了相应的网络设置。软件环境的配置主要是对PBS系统的安装和配置,主要包括:系统安装、服务器配置、执行节点配置、进程启动、建立作业队列、实验的内容是提交一个矩阵相乘的并行作业,矩阵运算在科学与工程计算中是最基本的核心问题之一,用它来进行测试具有代表性。本作业要完成A、B两个1000*1000矩阵相乘目的是为了对搭建的PBS系统环境进行测试,检验PBS系统的正确运转及相关性能的测试,并对实验结果进行分析4。首先采用并行行列划分算法,通过MPI编写实现矩阵相乘的并行程序pjob.c(程序代码见附录)。并在linux下用mpiccpjob.c进行编译,生成a.out执行文件,将参与运算的矩阵文件A.dat、B.dat拷贝到本地。并在单机下直接运行命令./out,记录运行产生的结果。然后,编写作业提交脚件,在脚本中对作业进行资源需求的描述。之后,运行命令qsubparallel_job向PBS服务器提交作业,通过监控命令qstat可以看到作业已经分配到执行队列中处于执行状态,并且服务器分别将并行作业的子进程传输到各台执行节点上运行,8台执行节点都处于运行状态。各节点的并行程序的子进程运行结束后,在标准输出文件中产生运算结果,记录运行时间。再逐步减少执行节点的数目继续实验,直到只剩下单机运行,记录单机运行产生的结果及运行时间。Fig.3connectionbetweonJobtimeandnode5结束语提出了一种适合集群环境下的高效资源分配与利用方案,并给出了详细的设计过程。深入分析了PBS系统的内部运行机制、安全机制、调度策略等方面问题,提出了改进方案。研究PBS系统与网格计算环境的融合问题,并将PBS集群计算环境融入到了网格计算环境,将PBS系统作为网格计算环境的低层资源,并通过globus对PBS系统进行了作业提交,测试了PBS在globus下的正常运转。【参考文献】1都志辉.网格计算M.北京:清华大学出版社,2002:10.2郑纬民等译.高性能集群计算M.结构与系统(第一卷),北京:电子工业出版社,2001:6.3PBS用户手册:《PBSAdministratorGuide》S.2000:4.4李,罗家融,王华忠.基于BEOWULF的PC集群系统设计及并行编程的研究J.微机算计信息,2005,,高效分配网格资源设计方案飞雪