APP下载

基于PBS的勘探数据处理作业管理

2014-10-14雷宏声

计算机与现代化 2014年2期
关键词:队列数据处理集群

邹 杰,许 涛,林 茂,李 铁,雷宏声

(中国石油新疆油田分公司勘探开发研究院地球物理研究所,新疆 乌鲁木齐 830013)

0 引言

随着计算机技术的不断进步,PC集群逐步成为科学计算最重要的辅助工具。高性能计算集群广泛应用于各种需要高速数据处理的生产、科研活动当中。作为目前“大数据高速处理需求”最有代表性的一项工作,石油勘探地震资料数据处理工作已经普遍采用计算机集群作为主要辅助工具和应用平台。

为提升集群易用性,很多集群应用软件都已经采用了队列管理和作业调度方式管理处理作业。然而成熟的商业调度软件价格动则上百万,企业很难从有限的引进经费中抽取相应费用采购这些应用软件。另一方面,这些商用调度软件通常都是一个通用系统,针对油气勘探处理应用的调度策略和队列管理必须开展大量的定制开发,而这些工作目前还鲜有成功的先例。

1 集群技术应用现状及存在的问题

集群技术是一项计算机集成技术,它是将诸如高速组网、高密度刀片服务器、高速并行存储等多种最新颖的计算机技术按照一定配比关系合理配置形成一个计算机体系。简单地说,PC集群就是利用高速局域网络将成百上千台高性能服务器组合在一起,通过应用软件统一调配使这些服务器协同完成同一件工作,利用参与计算的计算机服务器(可称之为计算节点)的数量换取计算作业完成的效率。不同于过去SMP/CCNUM并行计算机的所有CPU资源和存储资源由一个操作系统进行管理的形式,集群中每一个计算节点运行各自的操作系统,管理各自的系统资源。在这种体系架构下,一个并行运算的过程大概可以分为以下几步:

(1)运行在主节点上的数据处理应用软件通过MPI通讯机制通知、协同其它计算节点获取各自需要承担的处理工作;

(2)参与计算的各计算节点分别启动相应的数据处理进程,这些进程之间通过MPI进行通讯调度;

(3)在主节点统一调配计算节点从共享存储上将分配给它处理的数据读到本地存储系统当中;

(4)各计算节点上独立运行的数据处理进程对本地存储的数据进行相应处理;

(5)主节点通过MPI通讯了解各计算节点运算情况,协调、同步计算速度,控制整个并行作业的运行状态;

(6)在主节点控制下各计算节点将处理完的数据汇聚写回共享存储;

(7)数据处理完毕,计算节点关闭处理进程,等待下次并行处理请求。

从以上步骤可以看出,集群中每一个计算节点运行各自的操作系统,管理各自的各种系统资源。计算节点运行状态是由计算节点独立控制的,一个并行作业完成情况是由每个参与计算的计算节点、网络环境、共享存储共同决定的。在这种情况下,集群应用对处理用户而言是“难用难管”。

石油勘探数据处理并行作业需要处理的数据量通常很大,需要计算节点长时间、连续高速运行。一个大规模的处理作业运行持续时间通常会在一周左右。大批量计算机同时连续高速运行时很难保障每个节点都不会发生问题。笔者单位过去处理并行作业时,经常会因为某一个计算节点出现问题导致作业延误或最终失败。与此同时,作业使用的节点中如果存在某一个或几个低效的计算节点,整个并行作业速度就会大幅度降低。科研人员如果想要让自己的并行作业高效正常完成,需要提前对参与作业计算的计算节点状态进行系统检测,了解各自运行状态,剔除一些不适用的计算节点。可以想象检查数以百计的计算节点,从中找出并剔除低效节点是一件非常困难的事情。这将导致用户对集群的应用效率很难感到满意。

作为主流勘探处理平台,Paradigm公司开发的EPOS处理系统在油气勘探企业内广泛使用。该系统的数据处理效果得到了行业专家的一致认可,然而在该系统中运行的处理作业还必须通过人工调度和管理,需要定制开发相应的作业调度系统改善这一处理系统的使用效率和用户体验。

2 PBS作业调度系统

PBS(Portable Batch System)是最初由NASA的Ames研究中心开发的一套开源的队列管理和作业调度系统,主要包括一个能够在异构计算网络中开展灵活的批处理工作的系统管理软件包。这一软件包特别适合诸如集群系统、超级计算机和大规模并行系统等高性能计算的需要。

PBS目前包括openPBS、PBS Pro和Torque三个主要分支,笔者单位开展应用研究的PBS主要通过开源软件Torque并采用MAUI作业调度器构造的作业调度系统。PBS作业调度系统的基本结构是:PBS服务器响应用户作业请求并且通过作业调度器和作业执行器将作业调度到集群中合适的节点,同时监控作业的运行情况。PBS的基本结构图如图1所示。

图1 PBS基本结构图

通过图1可以发现PBS作业调度系统需要有一台管理节点服务器进行队列管理和作业调度。PBS管理节点服务器上需部署有PBS_Server和与之集成的Maui调度器。而所有通过PBS管理的计算节点上都需要部署计算代理服务PBS_Mom。在这种模式下,作业运行的主要工作流程如图2所示。

图2 作业调度系统工作流程

用户在客户端编辑好作业脚本,设定需要的资源请求后,qsub提交作业到PBS_Server;PBS_Server接收作业请求后,将作业放入队列;Maui调度器在作业入队之后,会接收到触发信号,触发新一轮的调度。作业正常结束或者删除时自动触发Maui进行新一轮的任务调度。

PBS作业调度系统可以完成对高性能集群应用软件调度和监控的大多数功能,能够满足绝大多数应用软件对作业调度的需求。然而将其应用到石油勘探处理集群应用环境时,它存在以下几个需要进行改进的不足之处:

(1)PBS作业调度系统不支持对集群节点分组的策略,在具体使用和管理上会产生较大的维护工作量。

(2)PBS作业调度系统不支持对集群单个节点优先权的定义,这在用户使用该调度系统针对特定资源使用的策略定义时会略微复杂。

(3)PBS作业调度系统在作业的动态迁移和由于节点异常导致作业中断后如何继续这两方面还存在一些问题(这是由于CHECKPOINT机制对交互作业方式支持得不够理想)。

另一方面,处理人员长期使用EPOS处理系统进行数据处理过程中已经形成了一套作业发送机制,已经习惯使用某几个系统提供的作业发送命令开展工作。现实工作中用户使用习惯是很难改变的,而一个系统的应用是否能够有效推进往往取决于用户对其接受程度。要使处理用户最大程度接受PBS作业调度方式,就必须确保这一方式不改变或尽可能少改变其已经形成的工作习惯,因此需要对这些作业发送方式进行Shell脚本封装,使其在用户使用界面不变的情况下在底层适用于PBS作业序列的要求。

为实现对EPOS作业自动调度管理,需要针对Torque和Maui调度器开发作业调度系统,并在相关的应用软件中进行功能测试、调整,完善系统功能对应用软件的支持效果,集中针对地震资料处理应用开展功能定制,逐步实现作业调度系统队列定制、应用程序封装、用户命令封装等多项工作。

3 定制脚本实现EPOS处理作业管理

建立作业调度系统首先针对该应用软件进行开发,根据用户发布作业的习惯和作业特点,编写脚本将作业分发过程封装在一个Shell中交由PBS进行作业调度。常规作业封装的脚本范例如下:

通过这一脚本封装,用户可以继续按照其习惯使用过去的作业发送命令提交其作业请求,通过上述封装脚本对用户作业序列进行扫描形成相应的PBS作业脚本发送到PBS_Server上,实现EPOS处理作业的自动调度。

另一方面,油气勘探数据处理并行作业运算过程中,与计算节点CPU打交道的是节点内部本地临时缓冲盘,所有中间计算数据都存放在这个缓冲盘上,因此该缓冲盘是否正常工作以及剩余空间是否合适很大程度上决定了并行作业是否能够正常完成。笔者单位开发了检查计算节点资源状况的Shell程序交付给PBS系统,在并行作业请求发送到PBS队列时预先检查计算节点状况,将不合适的节点从队列当中剔除,对其它节点进行资源初始化,从而有效确保处理作业正常执行的概率。具体程序限于篇幅在这里就不再列出。

通过大量的改造和定制工作,根据油气勘探处理作业实际需求,针对PBS作业调度系统进行了一系列改造:

(1)对作业调度系统分组功能的设计与实现。分组功能的实现将有效简化系统管理员配置和更改作业调度系统的工作量,提高资源的利用效率。

(2)为用户提供地震资料处理系统常用命令在作业调度系统中的封装。该封装可简化用户命令操作中的复杂命令输入,使用户方便易用。

(3)以用户习惯方式显示作业详细信息。用户可以通过该信息获得相关应用的基本状态。

(4)针对常规处理中的常规串行、常规批量等特殊类型作业,通过编写相应的脚本文件对该类常规作业进行封装,用户只需在提交作业的节点上调用相应脚本就可实现该类作业的自动运行。

(5)针对地震资料处理软件并行作业,了解相关应用软件并行作业的并行机制,通过脚本实现并行作业的封装。

(6)完成对地震资料处理软件作业调度系统相关的策略优化,具体策略优化包括基于优先权的资源抢占的优化和资源的无效占用的优化。确定作业抢占资源优先原则是“交互作业高于批量作业”。通过调整常规应用队列不同级别的优先级配置,来解决在常规处理节点资源短缺时优先保证交互作业的运行。通过对特定交互应用定义存活时间期限,当超过这个期限时,自动将超时进程删除,从而有效地释放了许可和计算资源。

通过以上功能改造,可以实现利用PBS作业调度系统对Paradigm EPOS处理系统所有作业统一进行调度,所有集群计算资源都由PBS作业调度系统进行队列管理。在不改变科研人员任何日常工作习惯,只需将处理作业发送到作业调度系统当中就能自动为其分配资源,完成计算任务。

4 应用实例

PBS作业调度系统在笔者单位勘探处理集群上部署后很快在实际工作中得到了应用。处理人员认可了系统管理人员对PBS的定制修改,统一改用PBS作业调度系统管理所有EPOS处理资源。该系统实现了EPOS系统常规交互作业的封装,从而实现了用户交互窗口的多节点负载均衡和调度分配,如图3所示。

图3 EPOS交互作业的封装效果图

通过图3可以看到,用户在登录节点hc03n15b上根据他的使用习惯键入“focus&”命令启动处理交互窗口。通过作业命令封装,该请求被改造为PBS作业脚本(作业号5897)发送到PBS_Server上,通过PBS调度发现交互队列中b50n04节点比较空闲,因此将该请求发送到b50n04节点上打开交互窗口交付给用户使用。PBS作业调度体系在这一过程中起到了很好的负载均衡和调度管理功能,而整个过程全部由计算机系统自动完成,无需用户进行任何干预。

另一个实现的实例是并行作业的封装,从图4中可以看到一个封装好的并行作业运行状况。

图4 封装后处理并行作业运行状态图

图4中可以显示处理用户pg14在登录节点hc03n15b上使用常规并行处理作业命令“disco gin_01_test_xutao”发出了一个作业,该作业被发送到Epos3_disco队列当中,作业已经在b51n07开始的21个节点上开启了21个处理进程。用户使用习惯依旧得到了尊重,而所有过去寻找节点、检查节点、建立运行节点表的工作全部交给系统自动完成,有效降低了处理用户使用集群的困难程度,使用户愿意使用集群帮助他们完成其研究工作。

通过定制改造,PBS作业调度系统与处理应用软件得到了完美的融合,有效实现了石油勘探数据处理并行计算的作业自动调度。笔者单位过去在小范围内采用了一套LSF作业调度系统管理处理作业。LSF功能强大,管理效果好,但该系统属于商业化应用软件,引进成本非常昂贵,笔者单位七千多计算核规模的处理集群如果全部部署LSF系统,成本是必须认真考虑的因素。随着PBS开源作业调度系统在笔者单位部署、改造成功,LSF作业调度系统已经逐步退出了本单位集群管理序列。PBS部署完毕后,系统管理人员进行了一些对比性工作,构建了表1所示的对比表。

表1 PBS作业调度系统应用对照表

通过表1可以看出部署PBS对集群应用状况带来了很多便捷之处,有效推动了集群系统在并行处理方面应用的深度和广度。

5 结束语

通过一段时间的应用,采用本文所述这套勘探处理定制封装方法定制修改后的PBS系统运行良好。安装这套系统后的勘探处理集群应用效率有了明显的提升,企业用户作业出错率明显减少,发送作业的积极性也有了很大的提升。同时这套方法成本较低,定制开发难度不高,能够很好地移植到其他具备相近应用条件的高性能计算集群上,有效提升集群应用效率。

为进一步扩大PBS在油气勘探应用平台中的作用,今后一段时间将集中力量针对以下2个方面开展定制研发工作:

(1)研究其它油气勘探处理软件的封装方法,扩展PBS管理的处理作业类型;

(2)利用PBS实现油气勘探地震解释多应用服务器负载均衡技术,为实现油气勘探处理解释云做好技术准备。

[1]兰文富,罗江华,程克非.集群系统的资源调度管理实现[J].科技创新导报,2011(24):43-44.

[2]李媛,张建林,张锐,等.集群作业管理系统SGE及其应用[J].计算机工程与设计,2009,30(12):2911-2914.

[3]何春山.并行计算机群的节能调控[J].计算机应用,2011,31(6):1716-1718.

[4]段新华,王宏勇,丁汨.集群作业管理系统的关键技术分析及比较[J].计算机技术与发展,2009,19(2):87-90.

[5]杨洋,李菁菁,王庆官.PBS作业调度研究[J].苏州大学学报:自然科学版,2009,25(1):42-46.

[6]张洋,陈文波,李廉,等.高性能集群作业管理系统TORQUE分析与应用实现[J].计算机工程与科学,2007,29(10):132-134,141.

[7]袁立强,徐炜民,张丽晓.PBS中的任务调度以及一类资源分配失效的解决[J].计算机工程,2004,30(15):89-91.

[8]尚尔凡,何川,都志辉.基于PBS的机群任务调度管理中间件的设计与实现[J].小型微型计算机系统,2004,25(6):1048-1051.

[9]童端,董小社,李纪云,等.基于OpenPBS的机群作业管理系统的设计与实现[J].计算机工程与应用,2004,40(13):123-125.

[10]李源,郑全录,曾韵.PBS作业管理系统分析[J].现代计算机:专业版,2004(3):17-19,23.

[11]张丽晓,袁立强,徐炜民.基于任务类型的集群调度策略[J].计算机工程,2004,30(13):63-64,115.

[12]李全枝,梁正友.集群资源管理系统PBS及其应用[J].微机发展,2005,15(4):4-7.

[13]郭绍忠,黄永忠,余丽琼.机群作业管理系统Condor综述[J].信息工程大学学报,2004,5(1):73-76.

[14]张小林,钟亦平.基于集群系统的资源管理系统的性能分析与比较[J].计算机应用研究,2003,20(9):56-59.

[15]叶庆华,孟丹,江滢.曙光3000机群作业管理系统JOSS的设计与实现[J].计算机工程,2003,29(6):42-44.

猜你喜欢

队列数据处理集群
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
队列里的小秘密
基于多队列切换的SDN拥塞控制*
海上小型无人机集群的反制装备需求与应对之策研究
在队列里
一种无人机集群发射回收装置的控制系统设计
丰田加速驶入自动驾驶队列
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人