亿万打工人的梦:16万个CPU随你用

在这里插入图片描述

如果有一天,你有16万个CPU,你要怎么用?
梦想还是要有的,万一它实现了呢?

首先,你要有个调度器。

我们现在说的调度器,主要是基于HPC场景的集群任务调度系统,英文叫Cluster Scheduler、Job Scheduler等。

市面上主流调度器有四大流派:LSF/SGE/Slurm/PBS。
不同行业因为使用习惯和不同调度器对应用的支持力度不同,往往会有不同的偏好:比如高校和超算经常用Slurm,半导体公司最常用的是LSF和SGE,工业制造业可能用PBS更多一些。

调度器是干嘛的?
如果有一台或者几台机器,专属你所有,你可以抱着他们一直持续而缓慢地用下去,调度器是没什么用武之地的。
那什么场景需要呢?资源紧张或者时间紧张的时候。
为啥紧张就需要呢?因为需要最大程度压榨现有资源或时间的最大价值。

比如验证跑个regression,如何做到几万个test case并行?
用1台机器做分子对接和1000台有什么区别?100000台呢?

举个例子。
哈佛大学医学院用云端16万个CPU来筛选10亿种化合物,只用了15小时。
这是他们提供的超大规模计算集群上的工作流程图:
在这里插入图片描述

蓝色框表示计算节点,其中包含CPU核数(蓝色框内的黑色正方形),紫色小圆圈代表待处理的配体。整张图代表整个计算集群,并行运行1.1到X.1个任务,任务1.1完成后会自动运行任务1.2,以此类推直到任务完成。
每个任务(包含多个子任务)使用3个计算节点,每个节点有8个CPU核。

假设我们有10亿化合物需要筛选,面对16万CPU,把流程图里缺乏的时间维度考虑进来,我们可以多思考几个问题:

1.16万CPU,怎么顺利一一配置,启动,关闭?
2.怎么能让集群整体资源利用率最高?跑更多任务?
3.能不能指定特定任务在某种类型计算节点上运行?
4.任务之间存在先后顺序,能否确保特定任务一定先运行?
5.怎么统计和限制不同用户的用量?
6.怎么监控每个节点的状态和使用情况?
7.怎么降低集群的整体运行成本?避免浪费?
8.计算节点间网络/数据传输怎么考虑?
9.如何应对云上集群资源高度动态的特性?空闲资源不足时怎么办?
……

当然,有些事已经不属于调度器的范畴了,这次我们不展开。

如果还不是特别明白,再打个比方。
认真想像一下你是老板,手里有且只有100个打工人,你想想要怎么管理才能让他们更好地为你工作??

好了,灵魂科普就到这里。
今天我们基于这几家主流调度器:LSF/SGE/Slurm/PBS以及它们的不同演化版本进行了梳理和盘点,尤其是对云的支持方面划了重点。

以下是正文。

LSF流派-Spectrum LSF、PlatformLSF、OpenLava

基于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。

SGE流派-UGE、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集群自动伸缩。

Slurm-四大流派里唯一纯开源派

Slurm全称为Simple Linux Utility for Resource Management,前期主要由劳伦斯利弗莫尔国家实验室、SchedMD、Linux NetworX、Hewlett-Packard 和 Groupe Bull 负责开发,受到闭源软件Quadrics RMS的启发。

Slurm最新版本为20.02,目前由社区和SchedMD公司共同维护,保持开源和免费,由SchedMD公司提供商业支持,仅支持Linux系统,最大节点数量超过12万。
Slurm拥有容错率高、支持异构资源、高度可扩展等优点,每秒可提交超过1000个任务,且由于是开放框架,高度可配置,拥有超过100种插件,因此适用性相当强。
在这里插入图片描述

全球60%的TOP500超算中心和超大规模集群(包括我国的天河二号等)都采用Slurm作为调度系统。我们的TOP500就是用Slurm调度云上资源跑的。

我们支持在Slurm上的集群自动伸缩和云端费用监控,并支持AWS、阿里云、Azure、腾讯云、华为云、Google Cloud等云厂商。
fastone的Auto-Scale功能可以自动监控用户提交的任务数量和资源的需求,动态按需地开启所需算力资源,在提升效率的同时有效降低成本。

PBS流派-OpenPBS、PBS PRO、Moab/TORQUE

基于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产品实现云端费用监控。

我们整理了一张包含上述四大类共9种调度器在内的信息集成表,有兴趣的可以添加小F微信(ID:imfastone),回复“调度器”获取原始表单。
预告一下,在下一篇EDA云实证Vol.4中,我们在相同场景下使用不同调度器进行了云端验证,敬请期待吧!

  • END -

速石科技(ID:Fastone_tech)
算力,是一种能力,也是一种资源。
我们为有高算力需求用户提供一站式算力运营解决方案,不局限于HPC,AI,大数据,互联网服务等。希望和你共同建立起不断迭代更新的多云世界观。
(你要是唠这个我就不困了。)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值