为什么有开源社区版,还有那么多公司使用专业版-谈HPC调度器
开放源码与商用 HPC 工作负载管理器的成本效益比较 商用高性能计算机工作负载管理器
1 简介
高性能计算(HPC High-performance computing)为多个行业的科学发现和创新提供了动力。大型数据集、先进的仿真技术和机器学习的结合,帮助企业产生了没有现代 HPC 基础设施就无法实现的洞察力。
鉴于高性能计算在推动业务成果方面的重要作用,选择合适的管理软件至关重要。在时间就是金钱的商业组织中,这一点尤为重要。在本文中,我们将讨论开源软件在高性能计算领域的利弊,并提出商业工作负载管理的理由。虽然开源工作负载管理器在某些情况下没有问题,但在生产环境中却可能存在弊端:
- 在高性能计算中,性能是关键
如果开源软件稍稍降低了高性能计算基础设施的性能、生产率或可靠性,就会被视为一个错误的决定。即使对高性能计算生产率的影响很小,也会对收入、盈利能力和上市时间等关键指标产生重大影响。
- 免费的隐性成本
开源软件通常以前期成本换取额外风险和持续支出。企业可能会发现自己在维护定制解决方案时面临更高的集成和支持成本,过度依赖昂贵的集成商或顾问,战略灵活性也会降低。
- 停机成本
企业应仔细考虑其可用性要求,并考虑关键漏洞、中断和安全漏洞的影响及其对HPC运行的潜在影响。
Altair商用工作负载管理器不仅可以提高性能、生产率和可靠性,还可以降低成本,大幅提高投资回报率(ROI return on investment )。我们在本文中介绍了简单的投资回报率计算,说明了效率的微小提高如何产生巨大的经济回报。我们还提出了一个总体拥有成本(TCO total cost of ownership)模型,高性能计算运营商可以利用该模型估算出开源部署通常会产生的一些隐性成本。有了这些信息,高性能计算用户就可以根据自己独特的环境和业务需求做出更加明智的决定。
2 高性能计算在工业中的关键作用
在商业领域,高性能计算是一种力量倍增器。对高性能计算的投资可以对企业的底线产生巨大影响。根据 Hyperion Research 的数据,企业在高性能计算领域每投资 1 美元,平均可增加 463 美元的收入。同样,每投入 1 美元,就能产生约 44 美元的利润。下图显示了根据 Hyperion 对 150 个使用案例的分析得出的各行业平均投资回报率。虽然金额不尽相同,但大多数行业的高性能计算投资都能获得可观的回报。
Hyperion 的分析(https://www.hpcwire.com/2020/09/07/the-roi-on-hpc-44-in-profit-for-every-1-in-hpc/ )表明了高性能计算在提高竞争力和盈利能力方面的重要性。这也提醒我们,尽管降低成本是件好事,但与高性能计算对底线的巨大影响相比,任何节省的成本通常都相形见绌。如果节约成本的举措会影响生产率,那么对高性能计算的投资不足实际上可能是有害的。换句话说,对高性能计算的吝啬可能是 “一分钱一分货”。
鉴于高性能计算的重要性,运营商需要关注生产率,并确保高性能计算投资带来稳健的财务回报。高性能计算运营商应重点关注:
- 最大限度地提高高性能计算环境的有效性和效率(最关键)
- 在不影响生产率的前提下,最大限度地降低总体拥有成本(TCO)。
- 预测并避免可能影响未来生产力或导致未来支出的下游风险
3 开源软件在高性能计算中的应用
虽然定义各不相同,但开源软件是指源代码免费提供的软件项目。各组织可根据开源许可证规定的条款使用、修改或重新发布软件。开源软件推崇开放交流、协作参与、透明和择优录取等原则。在最佳状态下,开源项目是敏捷的、得到良好支持的,并能对不断变化的用户需求做出响应。
权衡利弊--虽然开源软件承诺快速创新、高质量和免收许可费,但这并不能保证。在某些情况下,开源软件可能会陈旧、缺乏功能,而且仅由少数开发人员主导,而不是由一个广泛的社区主导。仅仅允许用户fork、更改和重新发布软件并不一定能使软件变得更好。开源软件有利有弊,如图:
开放源码开发模式和定价策略是两码事。商业实体可以提供开源软件,但以其他方式盈利。这些方式包括服务、付费插件或商业支持版本,提供免费社区版无法提供的功能。企业需要对开源项目有一个现实、清醒的认识,并对其效益、潜在风险和实际成本进行现实的评估。
开放源码的潜在弊端:
- 项目可能枯萎和死亡
有时,开源项目可能干脆停止。开发人员会失去兴趣,停止添加增强功能,新版本也会停止发布。其他人可能会收拾残局,但通常会有一个很大的学习曲线。新的项目负责人可能会有不同于前任的开发重点,并将项目带向不同的方向。已经停止(或正在维持生命)的项目包括 ReiserFS、CentOS 和 Ganglia。
- 过度分散
项目有时会过于频繁地分叉,导致出现多个并行项目,但却没有一个达到临界质量。出现分裂的原因可能是开发人员之间存在分歧,也可能是不同行业的用户有不同的需求,并优先考虑不同的功能集。
- 不稳定
变化太快,版本太多,导致整体不稳定。开发人员往往只关注 “很酷的新功能”,而忽略了测试、确保向后兼容性和设计简洁的升级程序。这导致软件漏洞百出、不可靠,难以在生产环境中提供支持。
- 侵犯知识产权
在某些情况下,开源开发人员可能会侵犯他人的知识产权或违反其他开源许可证。这个问题比许多人意识到的更为普遍。开源项目的管理者往往缺乏资源来进行适当的法律审查,从而使贡献者和社区用户处于潜在的危险之中。
- 功能滞后
如果没有商业动机来不断增强软件,那么在新功能、安全性和合规性方面,功能可能会滞后。开源用户可能会发现自己只能使用低效、无竞争力的产品,或者需要投资开发新功能,如云突发能力或容器支持,以推进人工智能计划。
- 商业风险
有时,开源项目由单一商业实体主导。实际结果可能与闭源模式类似。商业优先事项会发生变化,商业利益有时会压倒开源利他主义。CentOS 就是一个很好的例子。这个在高性能计算领域广泛使用的免费操作系统是在红帽企业 Linux(RHEL)的下游开发的。红帽最近宣布开源 CentOS 8 将于 2021 年 12 月停止使用,这让许多高性能计算网站开始寻找替代品。同样,流行的开源 ELK 栈提供商 Elastic 最近决定将许可从开源 Apache 许可改为 MongoDB 使用的限制性更强的服务器端公共许可 (SSPL)。此举将对依赖 Elastic 核心组件下游解决方案(包括各种监控和警报应用程序)的用户产生重大影响。
开发人员喜欢关注新功能,但这只是开发工作的冰山一角。开发团队需要担心安全补丁、维护版本、质量保证、支持新的硬件和软件环境、执行回归测试等等,这意味着开源项目往往有商业支持者,他们会通过直接销售服务或为用户创造依赖性来推动用户购买其他产品,从而实现投资的货币化。
另一个未被重视的风险是,中小型企业通常只有一两个人在运行高性能计算环境。由于他们对组织至关重要,因此他们的工作满意度和安全感都很高。这些用心良苦的人往往有动力利用开源软件。选择免费软件可以避免前期成本,同时还能证明他们对雇主的资金非常节俭。此外,部署和维护开源软件需要独特的技能和专业知识,这有助于巩固他们对组织的价值。这不仅是维护软件所需的隐性成本,当这些关键人物离开组织时,也会带来巨大的业务风险。“开源并非免费--它只是用前期成本换取了持续成本和额外风险"。
当第三方集成商、顾问或硬件制造商参与进来,围绕开源软件捆绑和提供服务时,这种态势就会变得更具挑战性。这种所谓的 “开放方法 ”最终可能会导致成本增加,因为支持要求和特定站点的定制要求会越来越多。企业往往会发现自己完全依赖于服务提供商。虽然服务提供商可能拥有宝贵的专业知识,但他们通常不会直接参与开源工作。这意味着他们无法直接解决软件的技术问题,只能采取变通方法,最终增加了下游成本。
4 工作负载管理是提高高性能计算效率的关键
工作负载管理是大多数高性能计算集群部署的核心。与高性能计算软件堆栈中的其他组件不同,工作负载管理直接影响到成本和生产力的驱动因素,其中包括
- 可扩展性--使更大规模、更全面的仿真更快完成
- 吞吐量 - 通过减少用户等待时间来提高生产率
- 利用率--帮助企业减少在基础设施和软件许可证上的支出
- 人员--通过直观的界面和协作工具集提高工作效率
企业可以选择多种开源和商业工作负载管理器。开源解决方案包括 OpenPBS、Slurm™、HTCondor™ 等。商业产品包括 Altair® PBS Professional®、Altair® Grid Engine® 和 Altair® Accelerator™。
HPC 工作负载管理中的隐性成本:下图显示了影响 HPC 环境中工作负载管理总体拥有成本的八个因素。虽然开源调度程序是免费的,但使用它们会导致额外的基础设施、人员、集成和支持成本。
- 集群管理
与商用工作负载管理器相比,开源工作负载管理器的管理通常更具挑战性。管理员需要解决功能缺失或不完整、诊断功能有限、文档不完善以及缺乏技术支持等问题。举个具体的例子,调整调度策略或确定作业待处理的原因等任务可能既繁琐又耗时。管理员可能会发现自己在实时集群和工作负载上试验配置设置,有可能造成不利影响。在商业环境中,管理员只需使用内置模拟器来预测调度变化的影响,并快速获得最佳配置。
- 内部部署和云资源使用效率
包括内部部署服务器、云实例和商业软件许可证在内的高性能计算基础设施价格昂贵。理想情况下,所有这些资源都应得到充分利用,以最大限度地提高生产率并降低成本。Altair PBS Professional 2020.1 及更高版本的模拟功能允许管理员从 PBS 综合体中提取快照,以确定作业的运行顺序,以及在不同配置设置下作业是否会运行。管理员还可以利用商业级云调度。管理员可以利用先进的资源共享、高吞吐量分层调度、GPU 共享和许可感知调度来提高资产利用率。他们可以利用具有成本效益的现货实例,合理调整实例类型的大小,并快速调配和关闭闲置的云资源,以降低实例费用。鉴于高性能计算基础设施成本高昂,即使资源使用效率提高 5-10%,也能节省大量资金。除此之外,还能提高生产率。
- 开发、集成和质量保证成本
开源工作负载管理器提供核心工作负载调度功能。但是,它们往往缺乏其他所需的功能。集群管理员可能需要自行集成网络接口、远程可视化工具、工作流解决方案、报告和监控以及云适配器等组件。应用程序集成也是如此。每个组件可能都有不同的先决条件,即使存在文档集成,软件版本的特定组合也往往未经测试。这些环境的支持和维护工作极具挑战性。
- 内部功能开发
高性能计算运营商可能会发现,他们选择的开源软件缺乏某项功能。他们可能会通过内部开发定制插件或变通方法来解决这一限制。虽然这在某些情况下可能是必要的,但代价也很高。高性能计算客户很快就会发现自己已经进入了软件行业。他们需要集成、排除故障,并在每次新软件更新时重新验证内部软件,以确保功能没有从早期版本退步。内部项目的维护成本较高。当关键员工或顾问离开企业时,开发内部定制软件的客户也会发现自己面临风险。
- 支持和服务成本
虽然开源工作量管理器可以获得社区支持,但这取决于社区专家的可用性和善意。在时间就是金钱的商业环境中,依靠志愿者是一种冒险的策略。生产环境中的问题通常比较复杂,时间紧迫,而且可能只在大规模或特定情况下才会出现。商业环境中的高性能计算管理员需要根据服务水平协议保证响应时间。此外,支持机构还需要有能力(大规模)复制问题,快速确定解决方案,并在必要时与开发人员合作制作补丁。有时,企业部署开源工作负载管理器是为了降低成本,但却发现自己需要支付额外的高额费用来聘请熟练的内部顾问和支持人员。具有讽刺意味的是,这可能比具有专业支持的商业解决方案花费更多。此外,聘用的顾问往往没有直接参与开源项目的开发。他们缺乏排除故障和快速修复生产中不可避免出现的问题所需的技能。
- 计划内和计划外停机
另一个经常被忽视的成本是停机成本。当工作负载管理器不可用时,整个高性能计算环境就会瘫痪。Hyperion Research 在 2019 年的一项研究中估计,HPC 停机时间的日成本从每天不到 10 万美元到超过 100 万美元不等。在许多环境中,作业都是长期运行的。如果这些作业不可检查点,并且由于工作负载管理器的问题而失败,那么即使集群中断几分钟,也可能导致数天的生产力损失。
5 商用工作负载管理的理由
虽然开源工作负载管理器有其存在的价值,但鉴于与性能和效率提升相关的高投资回报倍数,对商用工作负载管理器的投资通常超过其成本。Statista 提供的数据显示,高性能计算客户正在用他们的钱包投票,愿意为提高性能和生产率买单。Altair newsroom - 最新发布的 Altair PBS Professional 为更多样化和动态的 HPC 工作负载提供高达 10 倍的性能。
参考:https://www.nextplatform.com/2020/05/06/unveiling-the-hidden-costs-of-hpc-storage/
6 Altair商用工作负载管理器
Altair为各种行业和应用需求量身定制商用HPC工作负载管理解决方案。这意味着客户可以灵活选择适合其业务的解决方案。Altair商用工作负载管理解决方案包括以下内容:
- Altair PBS Professional
PBS Professional是一个商业支持的、业界领先的高性能计算工作负载管理器。企业更青睐 PBS Professional,因为它具有商业许可、支持、保护以及加固的企业级软件包所带来的额外可靠性。PBS Professional 提供了大多数开源调度程序所不具备的高级功能,包括分层调度、云突发、预测和仿真功能。它还提供强大的安全、性能、管理和可用性相关功能。参考:https://insidehpc.com/2020/09/altair-cto-interview-pbs-professional-gets-a-major-upgrade/
- Altair Grid Engine
Altair 还提供 Altair Grid Engine,这是一款基于成功的 Grid Engine 开源调度程序的商业调度程序。Altair Grid Engine的前身是Univa Grid Engine,对于已经熟悉Grid Engine变体(包括Sun Grid Engine(SGE)、Oracle Grid Engine(OGE)、Open Grid Scheduler(OGS)或Son of Grid Engine(SoGE))的客户来说,Altair Grid Engine是一个理想的选择。Altair Grid Engine提供了多项先进功能,包括增强的可扩展性和吞吐量、容器支持、可靠性和可诊断性改进、先进的GPU调度以及现代化的RESTful API。
- Altair Accelerator
Accelerator 是一款高吞吐量的企业级商用调度程序,旨在满足半导体和电子设计自动化(EDA)用户的复杂需求。它具有极高的吞吐量和较低的延迟,使半导体公司能够加速模拟和回归测试。电子制造商也可以更高效地使用商业 EDA 许可证,并在设计团队之间分配资源。Altair Accelerator 包括全面的策略管理和全功能图形用户界面(GUI),可按用户、工作流和项目提供作业可见性。
7 Altair开源
Altair为喜欢开源工作负载管理器的客户提供其流行的PBS Professional工作负载管理器的开源版本OpenPBS。OpenPBS 可从https://openpbs.org/免费下载。这使客户可以灵活地从开源软件开始,然后根据需要轻松升级到商业支持的产品。
参考资料
- 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
- 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
- python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
- Linux精品书籍下载 https://www.cnblogs.com/testing-/p/17438558.html
8 HPC完整解决方案
高性能计算工作负载管理不仅仅是核心调度程序。客户需要从门户网站、工作流管理器、云连接器到报告和分析解决方案的各种功能,如图所示:
Altair围绕其商用工作负载管理器提供了一整套功能。例如,Altair® FlowTracer™ (依赖性管理)、Altair® FlowTracer™ (运行时设计自动化)、Altair® Access™(可用性、远程可视化)、Altair SAO(软件资产管理 software asset management)、Altair® Control™Control™(管理)和Altair® NavOps®(云集成)。
Altair的HPC和云计算工具都是完全支持的、预集成的,并且可以协同工作。客户受益于易于集成、更快的实施以及一些开源替代产品所不具备的功能。客户还能节省开发、集成、生命周期管理和支持方面的费用。
- 降低解决方案集成成本
使用完整的预集成解决方案,客户可以避免采购、集成和维护开源组件所需的时间、精力和费用。例如,门户网站、监控工具、云适配器和工作流管理器。
- 避免内部开发成本
开源调度程序有时仅在容器、GPU 调度和商业许可管理等关键领域提供基本功能。这往往迫使客户以额外的成本开发和维护内部解决方案。
- 更高的性能和资源利用率
与开源替代方案相比,商业工作负载管理器通常能提供更好的吞吐量和资源利用率。例如,在已发布的基准测试中,Altair Grid Engine 的性能是开源替代方案的 2 倍到 9.5 倍。有了更高的吞吐量和利用率,企业就可以降低内部部署和云中的基础设施成本,同时减少用户等待时间。
- 应用程序集成
对于群集管理员来说,构建、编写脚本和优化应用程序集成都非常耗时。这些活动包括队列配置、开发定制钩子、用户界面模板等。商用调度程序通常会提供经过预先测试和记录的集成模板,从而消除了复杂性。
- 商业服务和支持
商业软件供应商通常提供培训、实施和配置协助以及支持服务。通过利用这些服务,企业可以减少管理员的工作量和服务台成本,避免过度依赖外部顾问和承包商。
- 减少计划内和计划外停机时间
最后,有了质量更高、测试更全面的软件,用户就可以减少停机风险及其相关的生产力损失成本。
9 估算降低总体拥有成本的财务模型
虽然每个高性能计算环境都不尽相同,但上述成本节约机会的模型是可以建立的。使用财务模型,HPC 运营商可以快速评估开源与商业工作负载管理解决方案在其自身环境中的利弊。
Altair 通过与客户协商,开发了一个简单的 TCO 模型,以帮助估算与开源部署相关的一些隐性(和非隐性)成本。虽然结果因组织而异,但附录 A 中提供的模型提供了一个有用的起点。HPC 操作员可以输入自己的估算和假设,并根据自己的环境调整模型。
附录 A 中详细列出的计算示例显示,使用商用工作负载管理器,典型客户每年可节省或避免 30-400K 美元的成本。
这些节约通常足以证明商业工作负载管理器的成本合理性。下图显示了主要的节约领域。节省的领域包括基础设施和应用程序相关成本、管理成本以及开发、集成和质量保证相关成本。
降低总体拥有成本固然有益,但也不能忽视商业软件的主要优势。商业解决方案通常可以帮助高性能计算用户提高生产力,比竞争对手更快地进行创新,同时避免与支持、性能、可靠性和连续性相关的风险。
根据 Hyperion Research 的数据,对高性能计算的投资平均可带来 44 倍的投资回报率。这意味着,性能或生产率提高 10%,所代表的不仅仅是节省 10%的成本,它可能是率先或推迟上市的区别,并能带来数百万美元的底线影响。如图所示,对于一个每年在高性能计算基础设施上投资 200 万美元的站点来说,仅 10% 的效率提升就能带来约 880 万美元的财务回报。考虑到高性能计算投资的高投资回报率,使用能最大限度提高环境效率并避免不必要风险的工作负载管理软件才是明智之举。
10 选择正确的策略
在高性能计算工作负载管理方面,客户有多种选择。使用开源产品还是商业支持产品,取决于企业自身的成本效益分析。
从事生产性工作的企业(如制造业、汽车业、航空航天业、石油和天然气业以及其他《财富》5000 强企业)通常更青睐具有商业支持的工作负载管理器。不太注重生产工作的公共部门机构(如学术界和研究机构)可能会选择 OpenPBS 等以开源许可方式提供的解决方案。客户应考虑其目标,仔细评估成本和潜在风险,并选择对其环境最合理的解决方案。
在评估解决方案时,最好牢记以下几点:
- 请记住,由集成商或顾问支持的开源软件可能会产生大量费用,并可能导致 “锁定”,因为特定站点的定制会增加。
- 了解 “现在付费与以后付费 ”之间的权衡。从总体拥有成本(TCO)、投资回报率(ROI)和高性能计算环境的整体效益角度考虑问题。
- 从整体上看待您的基础设施。高性能计算是多维的--CPU、GPU、内存、I/O、许可证、电力、云支出等。- 只解决几个方面问题的解决方案运行速度会更慢,成本会更高。
- 最后,仔细考虑可用性要求。考虑关键错误、中断和安全漏洞的影响及其潜在影响。
11 结论
HPC在研究、设计和制造中发挥着至关重要的作用。虽然开源软件有助于加速许多高性能计算学科的创新,但也并非没有缺点。对于工作负载管理器等直接影响高性能计算环境性能、可靠性和效率的关键软件组件来说,尤其如此。
鉴于硬件、软件和人员成本高昂,高性能计算环境必须高效运行。在生产环境中,与开源管理、支持和生命周期管理成本相关的隐性成本会迅速增加。具有讽刺意味的是,开源用户可能会发现自己被 “锁定”,依赖于第三方来维护定制环境,而这些环境的能力最终还不如商业替代品。本文介绍的估算总体拥有成本的简单方法可以帮助企业权衡开源的利弊,并根据自身的环境和需求做出明智的决定。
最后,高性能计算运营商需要记住,总体拥有成本只是等式的一部分。考虑到HPC在业务中的关键作用,即使在工作负载管理性能和可靠性方面取得很小的进步,也能推动生产力的提高,从而产生巨大的底线影响。
欲了解更多有关 Altair 行业领先的 HPC 工具和工作负载管理解决方案的信息,请访问 https://www.altair.com/hpc-cloud-applications/。
12 附录 A - 投资回报率和成本计算示例
略