英国气象局所选择的是来自非传统供应商的传统超级计算机:在Azure上选了四个Cray EX系统,这样做可以“减少购买超级计算机所花的时间,而是更多地利用超级计算机”,引号内出自气象局IT研究员Richard Lawrence。
这样做除了跳过通常的多年采购周期外还购买了灵活性,还可以更方便地在未来对高性能计算(HPC)工作负载做出不同的选择,比购买自己的硬件要快得多。市场研究和咨询公司Gartner建议,将HPC迁移到云端可以提供一个机会,可以摆脱处理数据分析时的内部孤岛,对那些通常可以追溯到20年或更久的做法现代化。
云HPC的优点和缺点
公共云供应商能够提供对Cray硬件的访问使得公共云供应商具有可信度,表明他们了解HPC用户中要求最高的那部分人的需求。但这也为云HPC的好处提供了一个垫脚石,这样一来就需要使用Linux服务器集群来处理要求严格的扩展工作负载,而且还有人们更熟悉的云的优势:灵活性、敏捷性和低门槛。
Forrester公司的高级分析师Tracy Woo告诉记者,“最大的一件事是能够选择异构的而不是同构的基础设施。HPC基础设施的高成本意味着大多数买家会选择一个单一品牌,这样他们就可以谈交易,每一个工作负载都必须在这个品牌上运行,无论这个配置是否合适。你使用你所拥有的东西,即使它不是你特别需要的。而有了公共云后,你就可能得到想要或需要的每一个基础设施选项,可以满足你的具体使用情况。”
云HPC能让你准确地指定应用程序的需求,可以提供熟悉的英特尔和AMD处理器以及价格较低的Arm处理器的组合,配置快速的CPU和GPU、密集的内核数量和高内存内核。你还可以获得大多数组织没有预算或专业知识的硬件加速器,可以马上轻松地进行试验。
Woo指出,“我不再需要在基础设施设备上花费数十万美元——在某些情况下甚至是数百万美元,而只需要一张信用卡就可以运行需要HPC的计算或特定分析,用几个小时就够了。”你还可以为每个工作负载甚至每个任务挑选合适的基础设施,而且可以在新硬件到达市场时对其进行基准测试,而不是等待下一个更新周期。
但这种灵活性也可能令人困惑,Woo警告说,多选择会引起“分析瘫痪”,一个帮助组织做出这些选择的工具和平台产业正在兴起。
英伟达公司HPC和量子产品总监Timothy Costa表示同意并表示,“管理员拥有巨大的选择自由,但也必须深入了解他们所选择的云供应商的独特架构。例如,他们可以在高速网络上组合各种计算硬件,进而优化其基础设施设 计,但并不是所有地区都具备所有类型的硬件。”
确定更适合于云计算的HPC工作负载
根据Hyperion Research的数据,2019年里在云中运行的HPC工作负载比例翻了一番,从10%增加到20%。Gartner将云HPC评为高收益的选择,离主流采用只有2-5年的时间了。
制造业和生命科学是最早将HPC转移到云端的行业,而且仍然是增长最快的分市场。Costa表示,这些工作负载往往是“高度并行化的代码或工作组合,对单个任务失败的容忍度很高以及对执行位置的要求不高”,他表示,金融、气象、航空航天和政府实验室正在增加对云HPC的使用,高等教育也一样。
对于一些“性能与成本的关系比绝对运行时间更重要的长尾HPC工作负载”来说,云HPC是一个特别好的选择,你可以花时间建立云基础设施,以达到成本最小化(或用于一些“需在内部部署不能提供的硬件上运行而获得巨大利益”的代码)的目的。
一些为云计算IaaS建立的超大规模数据中心优先考虑的优化措施与HPC超级计算机的优化措施不同的:超大规模数据中心是将虚拟机分散在整个数据中心,借此达到实现弹性和故障转移的目的,但HPC是将虚拟机紧密地组合在一起,以达到获得最快的网络连接从而提高性能的目的。Costa表示,云HPC最适合松散耦合、非常平行的工作负载,而云网络则“很容易满足组合负载或参数扫描一类的HPC工作负载的需求”。
虚拟化性能对于那些习惯于裸机HPC的人来说可能是陌生的,但是在2021年11月的500强名单中,一台建立在Azure上的虚拟超级计算机跻身世界十大最快机器之列,全部使用基于Hyper-V的虚拟机。谷歌云的首席HPC技术专家Bill Magro告诉我们,“云中的计算优化虚拟机提供接近裸机的低抖动性能,云网络可以提供200Gbs以上的带宽和小于10µs的延迟,并行文件系统则可以提供TB s的数据速度。”
常见的工作负载包括:
- 计算机辅助工程(例如,流体力学、燃烧、碰撞安全、结构力学等)
- 电子设计自动化
- 计算物理学和化学
- 特殊效果渲染
- 定量分析
- 风险分析
探讨云结构选项
一些工作负载需要持续低延迟的高性能互连,高性能互连过去在云计算中很罕见。Woo建议,如果你的云供应商不提供这些,高性能互连更适合用你自己的基础设施。然而,人工智能和云游戏工作负载都受益于高速互连,所以高速结构开始在云中出现。Azure在旗下所有H系列集群(用于基于CPU的HPC)和大多数N系列集群(用于基于GPU的HPC)上都提供熟悉的HPC InfiniBand互连,而AWS Elastic Fabric Adapter则用于Lustre并行文件系统。
AWS最近开始用一种新的网络传输协议扩展旗下专有的Elastic Network Adapters,新的网络传输协议旨在用于旗下定制的Nitro网络适配器上,用途是作为InfiniBand的替代品:Elastic Network Adapter Express使用Scalable Reliable Datagram(SRD)而不是TCP,试图将多租户数据中心的许多网络路径变成一种优势而不是限制。
Woo告诉我们,“网络基础设施确实阻碍了云计算HPC的发展,是个瓶颈,所以这是超大规模公司目前真正关注的东西。”
了解HPC云成本的关键
在云计算HPC这种情况下,你只需要使用(并为此买单)你需要使用的部分,但你买单的部分可能会更多一点。虽然有些估计认为云计算HPC成本比运行你自己的基础设施高五倍,但如果你使用预订实例或闲置实例,成本就会下降到接近另一个选项。
Costa 表示同意,“虽然云的灵活性有助于最大限度地降低整体成本,但云托管资源的绝对单位成本要高于内部部署资源。”这意味着长期运行的HPC工作负载放在内部部署资源上可以充分利用资源,所以是有道理的。另一方面,Incredibuild的首席技术官Dori Exterman认为,“不经常执行的工作负载需要在小范围内使用大容量的资源,相对于建立一个内部部署环境,在云中的成本要低得多。”
HPC云自动化平台Rescale建议,许多组织可以通过使用Rescale基准来挑选最合适的云硬件,提高性能并减少工作负载的成本。最适合你的工作负载的云计算可能会迅速改变,但你也可以灵活地转换,前提是你保持对各种选项的关注。
除非你已经实施了一些收费措施或有明确的资源使用政策,否则HPC用户可能会认为内部部署的基础设施实际上是免费的,又或者他们可能在估计工作负载需要运行多长时间或需要多少实例时遇到困难。这些习惯带到云HPC上就会非常昂贵,所以你需要明确的政策和指南,要说明如何为工作负载做预算。
云HPC在分流一些较小的HPC任务时特别有帮助,这些小任务通常会在资源管理队列中停留很长时间,因为大型的、长期运行的任务通常占用很多资源,HPC基础设施通常被这些任务霸占。这对利用率和投资回报率来说是好事,但对等待使用HPC基础设施的团队来说有些无奈:云HPC可以帮助这些团队定时完成任务或运行更大、更复杂的模拟获得更好的结果。
如果你采用突发模式利用云端混合HPC的方法,请制定一个框架来决定哪些负载应该迁移到云端以及何时迁移。
例如,Hyperion Research的云应用评估工具可以对不同的工作负载进行评分,评估这些工作负载是否适合在云中运行。
考虑数据重力和数据出口的成本
另外还需要考虑数据重力和数据出口的成本。如果数据是在本地产生的,则需要计划如何将数据迁移到云中。如果你的HPC任务产生了数千兆字节的数据,请考虑在云中进行后续处理或分析,如此可以避免支付额外的费用才能获取结果。Costa指出,“存储成本可能是云计算账单中一个令人惊讶的重要部分。”
使用任何云资源都需要良好的成本控制和FinOps工具。这对云计算HPC来说更加重要,因为账单可能非常大,而选择基础设施方面时的小小变化可以节省大量资金。
但云计算主要不是为了省钱,Woo指出,“云计算事关你调整自己能力的能力、事关敏捷力、事关你使用所有这些不同服务的能力。”可能意味着更快地获得结果,通过在相同的时间内运行更多的模拟获得更好的结果,或者只是提高IT团队和HPC用户的生产力。
Costa指出,“通常HPC是IP开发的主要工具,所以HPC不能下线。用了云以后,备份、迁移和区域故障转移都可以内置。”
云许可证的注意事项
可以使用熟悉的HPC软件管理云许可证,例如:
- 编译器、任务提交工具和调度器(如Altair PBSPro、SchedMD Slurm、IBM Platform LSF、Altair GridEngine和HT Condor)。
- 管理和监控工具
- 操作系统、应用程序、消息传递和数学库
- 完整的解决方案,如NVIDIA Bright Cluster Manager或云OpenHPC等工具
Magro指出,“HPC用户(通常是科学家、工程师、量化师和艺术家)访问云HPC系统时用相同的内部部署应用程序和界面。”他警告说,“那些依赖较低层物理平台接口的管理工具(如IPMI、Redfish或vPro)通常与云资源不兼容,除非工具的作者特别启用了相关功能。”但他指出,像Nagios这样的替代品可以用于云。
FinOps工具在以下领域可能会令你失望:如果你想管理你已经拥有的软件许可证并想在云中使用这些软件许可证,而处理企业内部部署许可证的ITAM团队则往往缺乏云专业知识。
“自备许可证”可能会在云HPC中为你省钱,或者你会发现你的软件供应商对云有不同的许可模式。她警告说,这是一个棘手的领域。例如,甲骨文公司以“在他家公共云之外的地方操作变得非常困难而闻名”。
你还需要考虑技能差距。“雇用一个了解公共云的人已经很难:雇用一个了解高性能计算和公共云的人就更难了”。
探索不那么传统的HPC
但是,云HPC也可以成为在堆栈里向上移动一点的机会。
诸如谷歌的HPC云工具包一类的云HPC服务为常见的工作负载提供了蓝图,这些工具包的基础设施是由Terraform、Ansible和Packer等熟悉的云工具定义的。
模拟是一个典型的HPC工作负载,而诸如AWS SimSpace Weaver、西门子Simcenter Cloud HPC(在AWS的即服务上运行传统的HPC软件)和微软的Project AirSim(用于建造、训练和测试自主飞机)一类的云服务令仿真变得更容易,仿真可以在不直接配置和管理基础设施的情况下以足够的规模运行。
另一个选择是用原生云产品来替代或补充HPC,无论是调用API还是使用容器或无服务器平台来分配和协调计算。美国圣地亚哥超级计算机中心就是在谷歌Kubernetes引擎中的闲置虚拟机上使用GPU共享,目的是加快南极的冰立方中微子观测站光子代码的运行。
对于预测和高级分析等人工智能工作负载而言,你可以通过使用预先建立但可定制的选项(如Azure认知服务,包括新的OpenAI模型)调用API,在没有HPC基础设施的情况下获得类似水平的洞察力。
红帽公司首席解决方案架构师James Read指出,用于数据驱动大规模决策的人工智能工作负载具有复杂的集成需求,通常是与企业应用一起部署,“这促进了从传统裸机部署到基于容器部署、Kubernetes-编排的混合云平台的转变,HPC解决方案因而能够部署在边缘和云中”。
如果你在用这些云服务作为现有HPC解决方案的补充手段,那么将这一类的工作负载迁移到云中可以简化整合。