调度器
概述
Workload Managers 直译为:工作负载管理器,我们更喜欢称之为:调度器 或 作业(或任务)调度系统。
调度器是HPC集群的核心系统软件,就像是操作系统之于电脑一样重要。
调度器的主要功能是将集群资源(如:CPU、GPU、内存、License等)组织起来并抽象到资源池中统一管理。在用户提交作业请求资源的时候,为作业分配资源。
关于目前主流的HPC作业调度系统有:LSF/Slurm/PBS/SGE,他们分别也都有一些衍生版本,所以,有人也将他们称为四大流派。
下表列出了目前主要使用的 HPC作业调度管理系统:PBS/Torque、Slurm、LSF、SGE 和 LoadLeveler使用的常用命令、环境变量和作业规范选项,这些作业调度管理器中的每一个都具有独特的功能,但最常用的功能在表中列出的所有这些环境中都可用。
主流HPC调度器概览
简单介绍 LSF/Slurm/PBS/SGE 四种调度器的情况。
LSF
基于LSF(Load Sharing Facility)的调度器主要有Spectrum LSF、PlatformLSF、OpenLava三家。
早期的LSF是由Toronto大学开发的Utopia系统发展而来。
2007年,Platform Computing基于早期老版本的LSF开源了一个简化版Platform Lava。
这个开源项目2011年中止了,被OpenLava接手。
2011年,Platform员工David Bigagli基于Platform Lava的派生代码创建了OpenLava 1.0。2014年,一些Platform的员工成立了Teraproc公司,为OpenLava提供开发和商业支持。2016年IBM就LSF版权对Teraproc公司发起诉讼,2018年IBM胜诉,OpenLava被禁用。
2011年,Platform Lava开源项目中止后。2012年1月,IBM收购了Platform Computing。Spectrum LSF就是IBM收购后推出的商用版本,目前更新到10.1.0,同时支持Linux和Windows,最大节点数超过6000,在国内提供商业支持。
Platform LSF是LSF的早期版本,与Spectrum LSF一样属于IBM,目前版本是9.1.3,目测已经停止更新以维护为主。
在这三个调度器中,仅有Spectrum LSF支持Auto-Scale集群自动伸缩功能,同时该调度器还可通过LSF resourceconnector实现溢出到云,支持云厂商包括AWS、Azure、Google Cloud。
提示
本站关于LSF的分享,主要基于Spectrum LSF 10.1.0版本。
Slurm (纯开源)
Slurm全称为Simple Linux Utility for Resource Management,前期主要由劳伦斯利弗莫尔国家实验室、SchedMD、Linux NetworX、Hewlett-Packard 和 Groupe Bull 负责开发,受到闭源软件Quadrics RMS的启发。
Slurm最新版本为22.05,目前由社区和SchedMD公司共同维护,保持开源和免费,由SchedMD公司提供商业支持,仅支持Linux系统,最大节点数量超过12万。
Slurm拥有容错率高、支持异构资源、高度可扩展等优点,每秒可提交超过1000个任务,且由于是开放框架,高度可配置,拥有超过100种插件,因此适用性相当强。
全球60%的TOP500超算中心和超大规模集群(包括我国的天河二号等)都采用Slurm作为调度系统。
PBS
基于PBS(Portable Batch System)的调度器包括OpenPBS、PBS PRO、Moab/TORQUE。
PBS最初是由MRJ Technology Solutions于 1991 年 6 月开始为 NASA 所研发的作业调度系统,MRJ于 20 世纪90 年代末被 Veridian 收购。2003年,Altair收购了Veridian,获得了PBS的技术和知识产权。
PBS Pro是Altair旗下PBS WORKS提供的商业版本,支持可视化界面,节点数超过50000个。
2016年Altair基于PBS Pro提供了开源许可版本,其与MRJ于1998年发布的原始开源版本两者合二为一大致就是现在的OpenPBS。与Pro版本比,多了很多限制,但都支持Linux和Windows。
Moab/TORQUE合在一起是一个完整调度器的功能,现在属于同一家公司Adaptive Computing。90年代中期由MHPCC的David Jackson开发的Maui,他后来创立了Adaptive Computing。
Moab是Adaptive Computing 公司(前身为 Cluster Resources 公司开发的Maui Cluster Scheduler)维护的 OpenPBS 分支,2003年发布。该项目最初是开源免费的,后来变成了商用软件Moab后不再免费。
TORQUE(Terascale Open-source Resource and QUEue Manager)早期的 Torque 也是开源免费软件,不过 2018 年 6 月开始 TORQUE 不再开源。
两者均只支持Linux系统,提供可视化界面,拥有约数千个节点。
云服务方面,PBS Pro能通过Altair Control产品从本地溢出到多云和Auto-Scale集群自动伸缩,支持的云厂商包括AWS、Azure和Google Cloud。
Moab/TORQUE则可通过NODUSCloud OS产品实现本地扩展到云,支持TORQUE或Slurm集群和自动伸缩,可支持的云厂商包括AWS、Azure、GoogleCloud和华为云,并通过Account Manager产品实现云端费用监控。
SGE
基于SGE(Sun Grid Engine)的调度器包括UGE(Univa Grid Engine)和SGE(Son of Grid Engine)。
1993年,Grid Engine作为商业软件发布,先后使用了CODINE(Computing in Distributed Networked Environments)、GRD(Global Resource Director)作为名称。1999年,第一次由Genias Software推出市场,然后被Gridware公司收购。直到2000年被SUN收购之后正式改名Sun Grid Engine,2001年发布开源版。
2010年被Oracle收购后改名Oracle Grid Engine,改成闭源版,不提供源代码。原来开源项目的资料库禁止用户修改。
于是,Grid Engine社区开始开源版本的SGE(Son of Grid Engine)项目。该调度器最后一次更新为2016年的8.1.9,由于存在版权风险,SGE已长期无维护和更新。
2013年Univa收购了Oracle Grid Engine,成为唯一商业软件UGE(Univa Grid Engine)提供商。UGE最新版本为8.6.15,同时支持Linux和Windows,国内暂无商业支持的相关信息。2020年9月,Altair收购了Univa。
用户可通过Univa产品Navops Launch把工作负载移到云端,同时支持UGE和Slurm集群。同时,Navops Launch支持AWS、Azure、Google Cloud等云厂商,并能进行云端费用监控以及Auto-Scale集群自动伸缩。