机群作业管理系统的评价体系

[摘要] 本文首先简单介绍当今颇具代表性和影响力的几种机群作业管理系统PBS、LSF、LOADLEVELER和CONDOR,以及我们开发的曙光系列超级服务器机群作业管理系统JOSS,接着介绍机群作业管理系统的评价体系,然后运用这一评价体系,比较和分析了当今有代表性的一些作业管理系统和曙光系列超级服务器作业管理系统JOSS,并由此得出了一些对于今后研制机群作业管理系统具有重要指导意义的结论。
[关键词]作业管理,评价体系,机群
0 引言
机群系统具有低成本、高性能的特性,提供了强大的批处理和并行计算能力,代表了高性能计算机发展的新方向。作为机群系统软件的重要组成部分,机群作业管理系统可以根据用户的需求,统一管理和调度机群的软硬件资源,保证用户作业公平合理地共享机群资源,提高系统利用率和吞吐率。因此,机群作业管理系统已成为高性能计算机领域的一个热点问题,出现了几十种的软件,它们在目标、结构、功能和实现上各有千秋。Kaplan,Baker,James Patton Jones,Saphir,Mary Papakhian等人从不同方面评价了现有的一些机群作业管理系统,但是到目前为止还缺少一个完整的评价体系来评价这些系统。长期研究和开发机群作业管理系统的经验表明,建立一个完整的作业管理系统评价体系,对于研制功能完备、公平高效的机群作业管理系统来说至关重要。为此,我们广泛研究了现有的十多种作业管理系统,紧密结合研制曙光系列超级服务器作业管理系统的实践,根据我们研制过程中所出现的问题、参考标准以及用户的需求,提炼出作业管理系统设计和实现中必需解决的关键问题,据此形成了一套较为完整的作业管理系统评价体系。然后运用这一评价体系,比较和分析了当今有代表性的一些作业管理系统,并由此得出了一些对于今后研制机群作业管理系统具有重要指导意义的结论。
1 几种流行的机群作业管理系统
目前的几十种机群作业管理系统,在目标、结构、功能和实现上各有差异,从不同侧面反映了机群作业管理系统所应具备的特性。PBS、CONDOR、LSF、LOADLEVELER是当今颇具代表性和影响力的几种机群作业管理系统。其中PBS、CONDOR是研究产品,LSF、LOADLEVELER是商业软件。下面,我们对这几种作业管理系统进行简单介绍和讨论。
1.1  PBS(Portable Batch System)
PBS最初由NASA的Ames研究中心开发,为了提供一个能满足异构计算网络需要的软件包,特别是满足高性能计算的需要。它力求提供对批处理的初始化和调度执行的控制,允许作业在不同主机间的路由。PBS的独立的调度模块允许系统管理员定义资源和每个作业可使用的数量。调度模块存有各个可用的排队作业、运行作业和系统资源使用状况信息。使用它提供的TCL、BACL、C三种过程语言,它的调度策略可以很容易被修改,以适应不同的计算需要和目标,即系统管理员可以方便地实现自己的调度策略。
PBS的主要特点有:代码开放,免费获取;支持批处理、交互式作业和串行、多种并行作业,如MPI、PVM、HPF、MPL;提供TCL、BACL、C三种过程语言,容易实现新的调度策略;提供文件传送功能,File Stage-in和Stage-out;满足POSIX1003.2d标准;支持作业依赖;自动的负载平衡;完整的安全认证;提供了完整的API,方便新的调度器的开发;提供用户影像功能,使PBS能用于用户不一致的系统中 。
1.2  LSF(Load Sharing Facility)
    负载共享软件LSF是由加拿大平台计算公司研制与开发的,由Toronto大学开发的Utopia系统发展而来。从强大的功能和广泛使用的角度看,LSF可谓是一个成熟的机群作业管理系统。在使用范围上,LSF不仅用于科学计算,也用于企业的事务处理。用户包括摩托罗拉、美国宇航局(NASA)、休斯敦飞机公司、通用电气公司、斯坦福大学等著名企业与科研团体。功能上,除了一般的作业管理特性外,它还在负载平衡、系统容错、检查点操作、进程迁移等方面作了很好的努力,并力图使之实用化。
LSF的主要特点是:支持多种操作系统,包括NT和WIN2000;支持检查点操作(核心级、用户级及应用程序级)和进程迁移;具有高可用性,消除单一故障点;提供了抢占式调度和关键资源保障,保证紧急作业的调度;可通过逻辑表达式创建作业依赖图,提供对依赖性作业的支持;提供了多种调度策略,包括Reservation和Backfill;动态的负载平衡与负载监测,负载指标包括节点状态、运行队列长度、CPU利用率、分页速率、登录用户数、空闲时间、可用交换空间、可用存贮器、/tmp目录下的可用空间;提供了完整的负载共享库;具有强大的资源管理功能。
1.3  LOADLEVELER
Loadleveler是IBM开发的机群作业管理系统。它成功地运行在IBM SP2机群系统上。Loadleveler允许用户在同构或异构的机群系统中提交交互式/批处理作业。除了IBM AIX操作系统外,它还支持HP-UX、SGI IRIX、SUNOS和SOLARIS等主流UNIX平台。在教育、研究机构、企业等各行各业,Loadleveler以其灵活高效的特点得以广泛应用,例如大规模的仿真、资源的优化利用、天气预报、地层模拟、经济分析等。
LOADLEVELER的主要特点是:支持并行/串行,交互式/批处理作业;对工作站主人的影响小;可定义作业类,优化调度;具有较好的系统可用性;系统中心控制;完整的文档;分布的用户服务器;提供完整的API;与NQS兼容。
1.4  CONDOR
CONDOR是由威斯康星大学开发的机群作业管理系统。充分利用工作站的空闲时间是CONDOR的最显著特征。CONDOR管理的机群由网络中的工作站组成。工作站主人可以自愿加入或退出。CONDOR监测网络中所有工作站的状态,一旦某台计算机被认为空闲,便把它纳入到资源池(POOL)中。在资源池中的工作站被用来执行作业。当工作站的主人开始使用该工作站时,CONDOR便将运行在该工作站上的作业迁移到其它节点上继续运行,从而避免了对工作站主人的影响。所有这些特征并不需要修改底层的UNIX操作系统核心,只需在用户级进行,而且不需修改用户程序,只需与CONDOR提供的库函数重新链接。
CONDOR的主要特征是:充分利用工作站的空闲时间;用户只需与库函数重新链接便可利用CONDOR提供的检查点和进程迁移功能;对于远程执行的进程,本地的执行环境被保留;工作站主人对该工作站拥有最高优先级和完全的控制权;作业保证彻底完成,不会因为系统的故障或工作站的退出而终止;本地磁盘空间不会被CONDOR作业所占用;对网络资源、数据传送和检查点操作的有效监控;对网络资源、CPU的协同调度。
3 曙光机群作业管理系统JOSS
JOSS是我们在DQS基础上开发的曙光系列超级服务器机群作业管理系统。它成功地运行在曙光天潮系列超级服务器上。它具有DQS所具有的特点,同时又根据曙光超级服务器的体系结构和软件平台加以改造,具有一些新的特点。下面是JOSS的系统结构图:
                      
JOSS由两个守护进程组成:Masterd和Execd,他们负责为系统的运作提供最根本的支持,是整个系统的核心。运行Masterd的节点称为主节点,运行Execd的节点称为计算或执行节点。系统中只有一个主节点,但可同时由多个执行节点。这是逻辑上的概念。在物理上,Masterd和Execd可存在于同一个节点上。从图中可以看出,Masterd用来接受用户的各种请求,并调度作业,管理系统资源。它维护着整个系统的关键配置信息和两种队列:作业队列和节点队列。作业队列存放着用户已提交的各个作业的信息,节点队列存放各个执行节点的资源信息。Masterd还负责作业的调度和执行节点的选取,根据一定的作业调度策略选取作业和节点,将执行作业的命令发送给Execd。Execd用来接收Masterd执行作业的命令,将作业投入运行,同时监控作业的运行状态和资源使用情况,向Masterd报告,还定期报告节点的负载信息。
4 机群作业管理系统的评价体系
我们在研究多种机群作业管理系统的基础上,结合我们在开发JOSS系统中所遇到的问题和参考标准,并参考其他人对作业管理系统的比较和评价,我们总结了机群作业管理系统的评价体系,包含以下几个方面的内容:
4.1  支撑环境:即系统的应用范围,包括:(1)是商用或是研究产品。这将决定使用该系统的花费和期望得到的服务等级。商用产品能提供较强的系统稳定性、强壮性和全面的服务支持,而研究产品一般开放源码,用户可根据需要加以改进(2)是否支持异构机群,如PC,MPP或工作站(3)支持的操作系统平台(4)为了运行该系统,是否需要安装其它的硬件或软件(5)能支持哪些文件系统,如NFS,AFS,DFS
4.2  支持的作业类型:(1)是否支持批处理作业(2)是否支持交互式作业(3)是否支持串行作业(4)支持那些并行作业,是否支持MPI、PVM、HPF等等
4.3  作业调度和节点分配策略:(1)提供了哪些作业调度和节点分配策略(2)作业调度和节点分配策略是否是可配置的,用户能否自由选择各种策略而不影响系统的正常运行(3)用户能否选择或更改各种调度参数,如采用负载平衡算法时,是否可由用户自由选取负载参数(4)当系统由许多工作站组成时,对工作站主人的影响如何(5)调度算法的开销由多大(6)是否提供了检查点操作的功能,支持哪几种作业类型的检查点操作,是在操作系统级还是用户级(7)是否提供了进程迁移的功能(8)系统是否对作业的状态进行监控,当作业异常是能否重新调度作业(9)能否挂起或继续运行作业(10)能否支持作业依赖(11)能否支持节点的公平共享策略、分区策略和独占策略,并由用户指定(12)是否实现优先级策路,并允许用户修改作业的优先级(13)是否具有分离的调度器和公开的API接口,方便用户自己开发调度器
4.4  资源管理功能:(1)系统管理员能否控制资源的可用性,能否更改资源配置,添加、删除和修改资源(2)系统管理员能否控制用户对资源的存取权限(3)系统管理员能否限定资源被使用的大小(4)用户提交作业时能否确定资源要求,作业提交后能否更改作业的资源要求(5)当作业完成后,能够很好地进行善后处理(6)是否能提供Stage-in 和Stage-out功能(8)当系统不可能满足作业的要求时,系统能否在用户进行作业提交时采取措施(9)×××的工作站主人能否设置资源的可用性、存取权限以及可用时间(10)×××的工作站主人能否自由地退出而不影响整个系统的运行
4.5  作业监控能力:(1)系统能否有效的监控作业的所有进程,特别是分布在不同节点上的并行作业的各个进程(2)当用户杀除作业时,系统能否彻底地杀除该作业的所有子进程,不留下僵尸进程(3)系统管理员能否改变队列或作业的状态(4)用户能否察看系统和作业的运行状态(5)用户能否挂起、释放或删除作业
4.6  安全:系统能否保证在多用户环境下的安全,包括:(1)系统是否有用户的身份认证机制,防止非授权用户对系统的使用和用户之间的冒名使用(2)能否防止恶意用户对系统的破坏(3)是否存在安全漏洞,能否防止网络***的***(4)能否防止用户对其它用户的作业的操作(5)除了Password 文件之外有没有其它的用户认证机制
4.7  记账日志管理:(1)系统能否记录每一作业的不同时期的状态(2)系统能否记录每一作业的运行开始、结束时间,退出状态、优先级,通讯量以及所使用的资源(3)系统能否根据管理员的记账策略生成记账信息
4.8  可用性:(1)系统能否消除单一故障点,保证系统的连续可用性(2)当系统某些部分发生故障时,系统能否保证作业不丢失以及作业运行结果的正确性(3)系统可用性的实现有什么要求
4.9  好用性:(1)系统管理员能否容易地管理和配置该系统(2)是否提供了图形化界面和命令行方式,方便用户提交作业、查询系统和作业状态(3)系统管理员能否动态配置系统而不影响系统的正常运行(4)系统是否有完善的文档(5)用户能否在提交作业时指定作业开始调度或运行时间(6)用户能否通过Script文件提交作业(7)用户能否重新定向输入和输出文件(8)用户能否从提交节点方便的存取输出文件(9)是否提供了系统各个部分的API接口(10)是否符合相关标准POSIX 1003.2d “Batch Queueing Extensions for Portable Operating Systems” (11)系统是否具有良好的可扩展性(12)能否支持两个机群系统互相提交作业
5 对各种作业管理系统的比较和评价
以上介绍了当今流行的最具代表性的几种机群作业管理系统和曙光系列超级服务器机群作业管理系统JOSS以及我们所建立机群作业管理系统的评价体系。根据我们先前建立的评价体系,我们对这几种流行的作业管理系统和JOSS进行简单的比较和评价:
5.1支撑环境:几种作业管理系统都支持PC,MPP或工作站异构机群,支持多种流行UNIX操作系统,LSF还支持WINNT和WIN2000;另外,它们都支持NFS;JOSS需要NFS的支持
5.2支持作业类型:他们都支持批处理作业,串行作业和MPI、PVM并行作业;LSF和PBS支持交互式作业;PBS还支持HPF以及MPL并行作业
5.3 作业调度和节点分配策略:都提供了FIFO等多种作业调度策略;LSF和LOADLEVELER还提供了较为有效的RESERVATION和BACKFILL策略;JOSS提供了基于优先级的FirstFit作业选取策略。都提供了完整的API,方便实现新的调度策略;PBS还提供了TCL、BACL、C三种过程语言和调度类,用户只需改造调度类便可实现自己的调度策略。作业调度和节点分配策略都是可配置的,对于节点分配策略,都提供了公平共享和独占两种策略;JOSS提供了基于POOL的节点分区策略,分区内的节点可设定节点可运行的作业数。另外,LOADLEVELER中,系统管理员还可以定义作业类,系统根据作业的类别、用户和组来定义优先级。除PBS、JOSS外,都有限度地提供检查点操作和进程迁移,其中尤以CONDOR的检查点操作实现的较为全面。系统都实现了负载平衡策略,都提供了内存使用率、负载均值等作为负载参数,其中LSF的负载平衡算法采用了多种负载参数,有:节点状态、运行队列长度、CPU利用率、分页速率、登录用户数、空闲时间、可用交换空间、可用存贮器、/tmp目录下的可用空间。另外,各个系统都较好的实现了对作业状态的监控。
5.4资源管理功能:在各个系统中,系统管理员都能控制资源的可用性,能更改资源配置,添加、删除和修改资源,能控制用户对资源的存取权限。用户提交作业时能确定资源要求,作业提交后能更改作业的资源要求。其中,PBS提供了Stage-in 和Stage-out功能。在LOADLEVELER和CONDOR系统中,支持各个计算节点的动态加入和退出,而且计算节点工作站的主人,对该节点有完全的控制权,能指定节点资源的可用性和可用时间,系统也能根据键盘或鼠标空闲时间或网络状态决定该计算节点是否加入
5.5作业监控能力:各个系统都能有效的监控作业的所有进程,特别是分布在不同节点上的并行作业的各个进程。当用户杀除作业时,各个系统都能彻底地杀除该作业的所有子进程,不留下僵尸进程。在各个系统中,系统管理员都能改变队列或作业的状态,用户能察看系统和作业的运行状态,用户能挂起排队作业、释放或删除作业
5.6安全:各个系统都有基于UNIX操作系统的安全策略,一定程度的保证了多用户环境下的安全。在PBS中,提供了用户的身份认证机制,防止非授权用户对系统的使用和用户之间的冒名使用,还提供了主机、组的授权与认证,能防止用户对其它用户的作业的操作。JOSS系统在安装时设定信任节点,用户提交作业或其它请求只能在信任节点上进行。另外,PBS和LSF都能支持Kerberos认证服务
5.7记账日志管理:各个系统都能记录每一作业的不同时期的状态,记录每一作业的运行开始、结束时间,退出状态、优先级,通讯量以及所使用的资源
5.8可用性:PBS未消除单一故障点,调度器和服务器均存在失效可能。JOSS系统没有消除单一故障点,不能保证系统的连续可用性。当主节点失效时,需要系统管理员重新启动,已提交的作业不会丢失。执行节点发生故障时,其上运行的作业将丢失,不能重新进行调度。在LSF中,采取了主节点动态选择机制,消除系统的单一故障点。LOADLEVELER的中心管理节点消除了单一故障点,保证了系统的连续可用性;当存放作业信息的调度节点发生故障时,原有的信息不会丢失,直至该调度节点重启后恢复;对于各个计算节点,发生失效时,调度节点等待一段时间后,将该节点上的作业重新调度。
5.9好用性:在各个系统中,系统管理员都能容易地管理和配置该系统,提供了图形化界面和命令行方式,方便用户提交作业、查询系统和作业状态,能动态配置系统而不影响系统的正常运行;用户能通过Script文件提交作业,而且能在提交作业时指定作业开始调度或运行时间。LSF、LOADLEVELER提供了较为全面的文档支持。另外,PBS符合相关标准POSIX 1003.2d。LSF提供了MultiCluster,支持多个Cluster之间的交互。
通过以上对各个机群作业管理系统的简单介绍和比较,我们发现各个系统在实现和功能上大同小异。LSF作为一个在市场上最具成功的机群作业管理系统,在功能及可用性方面作了较好的努力,具有较高的实用性和优势。而PBS作为一种应用范围较广的开放源代码的自由软件,也提供了很好的功能,获得了业界的好评和广泛的使用。CONDOR作为一个研究产品,为了最大挖掘网络中空闲工作站的计算潜力,在检查点操作和进程迁移方面作了很好的努力,是想充分利用局域网内工作站计算资源的系统管理员的最好选择。从CONDOR发展而来的LOADLEVELER,在商业化方面IBM也作了很大努力,也具有了很好的可用性。我们开发的曙光机群作业管理系统JOSS,虽然在功能和可用性方面逊色一些,但它基本上实现了一个机群作业管理系统所应具备的功能,而且与曙光超级服务器系统结合紧密,充分利用了曙光超级服务器的优势,能很好的完成作业管理的工作,发挥了较好的作用,极大的方便了用户的使用,提高了系统的使用效率。但是,它在调度算法的多样性,高可用性和安全性方面还存在一些不足,需要完善和改进。
6 结论和进一步的工作
一个功能强大、富有效率的作业管理系统不但能大大方便用户的使用,而且能够极大地提高机群系统的利用率。作为一套机群作业管理系统的评价体系,不但是比较各个机群作业管理系统的依据,也是指导我们开发和升级现有机群作业管理系统的参考。我们的机群作业管理系统的评价体系也希望在反应系统和用户需求的同时,成为我们开发下一版本的曙光机群作业管理系统的指导原则。目前的评价体系还停留在定性评价的基础上,没有定量评价。在以后的工作中,我们将逐步引入定量评价的机制,特别是要设计和实现一个机群作业管理系统中调度算法的模拟评价系统,对各种调度算法进行模拟,并对模拟的结果进行比较和分析。
曙光机群作业管理系统作为曙光超级服务器的一个重要组成部分,今后也将在调度策略、安全性以及高可用性、好用性方面作进一步的改进。同时,面对网格系统的出现,我们也将在支持网格应用方面作一些尝试,使其适应新的计算环境。