传统的高性能计算(HPC)通常需要使用专门配置的计算服务器集群来部署。近年来,对规模和性能的需求推动了HPC从本地部署转向云端 - 这种转变既带来了新的机遇,也面临着重大的挑战。
从积极的一面来看,云端提供了几乎无限的计算和存储资源,因为云平台可以根据需要灵活增减容量。
然而,在公有云中运行应用程序也带来了新的挑战。每个云服务提供商都有一个庞大的服务目录,而每个服务都有各种各样的功能。如果没有配置和优化云服务所需的知识,研究人员可能会遇到应用程序性能不可预测或不令人满意、意外成本或不必要的安全风险。
在科学计算和数据科学领域,MemVerge的Memory Machine Cloud(简称MMCloud)正发挥着关键作用。MMCloud是一款设计简便的云自动化平台,旨在简化在云中部署数据密集型任务和交互式计算应用程序的过程,通过自动化和容器化技术实现。
容器技术是实现应用程序在云中灵活迁移和规模化部署的核心。容器包含了运行应用程序所需的全部软件依赖和运行时库,确保以可复制的方式运行应用程序。然而,要实现容器的部署,需要一个云编排平台来安排、实例化和管理这些容器。MMCloud提供了直观的GUI图形用户界面(还有CLI命令行界面),使非专业云从业者能够轻松地将复杂的工作流程转化为在云端以容器化形式运行的应用程序。
越来越多科学家们选择依赖MMCloud,以提高他们的研究效率。
01 高性能计算在云端的无缝拓展
混合云是一种结合了本地和云端资源的架构,因为它具有很大的灵活性和可扩展性,所以在高性能计算(HPC)中变得很受欢迎。当你的计算需求超过了本地资源的限制时,应用程序可以迅速地利用云端资源。
MMCloud让科学家们可以在一个既高效又灵活的混合环境中工作。它允许用户使用熟悉的HPC作业管理器,比如SLURM和PBS,在云端启动作业,有效地扩展了本地HPC环境与公有云的结合。
此外,MMCloud的核心特性包括容器化和自动化。它可以自动将容器化应用程序部署到云中,并在作业完成后自动清理云资源,这样就不会出现未经监控的资源增加导致月度云费用上升的风险。交互式会话也可以休眠,并在需要时重新启动,使整个过程更加方便和高效。
02 云工作负载的深度监控
有些企业对于把工作负载移到云端还有些犹豫,因为他们担心在云中运行应用程序时可能会失去对运行方式的掌控。他们可能担心作业是否能够更快或更慢地完成,以及云中的资源是不是足够或者太多了。
在云中操作时,我们需要了解工作负载的性能和资源利用情况,这样我们才能做出明智的决策。虽然云服务提供商提供了一些监控工具,但它们可能难以使用,而且通常还要额外付费。
MMCloud解决了这个问题,它提供了先进的监控和计量功能,确保科学家们能够清楚地了解他们的工作负载在云中的表现。CostReporter告诉你在云中运行的作业花费了多少钱,WaveWatcher让你轻松查看实时资源消耗情况,包括CPU、内存、存储和网络传输速度。比如,你的应用程序可能因为超过存储限制或者缺少资源而崩溃。MMCloud可以帮你发现这些问题,使故障排除变得更加简单。
MMCloud还能生成作业和主机级别的事件和性能日志,你可以实时查看这些日志,追踪作业的执行进度,或者在作业完成后下载以识别问题或错误。这些监控功能让研究人员能够微调他们的环境,以实现最大效率。
03 可靠的抢占式实例
几乎所有的云服务提供商都支持抢占式实例,这是一种比按需实例便宜很多的实例(有时候可以省下高达90%)。但便宜是有条件的,因为这些实例的可用性是不确定的。云服务提供商有权在很短的通知时间内(通常是两分钟或更短)收回这些实例。
抢占式实例适合那些不需要保存状态的应用程序,也可以用在一些有状态的批处理流程上,只要工作流管理器能够重新安排失败的任务。但总的来说,直接使用抢占式实例会使总花费和任务完成时间变得不稳定和不可预测。
MMCloud的SpotSurfer功能让有状态的应用程序能够一直运行下去,即使底层的抢占式实例被回收了,它会像冲浪一样迁移到一个新的虚拟机(VM)实例上。这样,客户可以在不中断任务的情况下,享受抢占式实例带来的成本节省。
SpotSurfer背后的技术原理是MemVerge自研的AppCapsule。AppCapsule会创建内存状态和文件系统数据的快照。当云服务提供商发出要回收抢占式实例的信号时,AppCapsule就会自动启动。作业执行会暂停,然后在新的抢占式实例上继续。
对于那些需要交互的会话,MMCloud还有一个反向代理,这样每个会话对用户来说就好像是一个IP地址,就算会话移到了不同虚拟机上,也不会影响到用户的使用体验。
04 成本管理
对于研究人员来说,控制云成本是一个很大的问题,因为预算非常有限。虽然使用云服务可能会更划算,但如果不小心管理,费用可能会变得不可预测。为了确保云支出和预算一致,在使用云服务的规模较大时,需要不断监控云资源的使用,以避免费用失控。
MMCloud提供的作业成本报告工具可以帮助准确预算,而SurfZone功能则可以实时限制云支出。
在控制成本方面,管理云基础架构工作负载的整个生命周期也很重要。MMCloud可以通过控制资源的使用,例如设定自动启动和关闭时间表,以及设置最大作业执行时间来实现这一点。在团队环境中,这种程度的控制对于管理成本至关重要,因为可能有多个用户同时在运行实验。
对于个别用户,还可以采取一些操作,比如取消作业、将作业迁移到更小(更便宜)的实例,或者暂停交互式会话,以帮助节省成本,避免不必要的闲置费用。
此外,性能也对成本控制非常重要。当作业在抢占式实例上运行时,一些作业可能更容易受到抢占,而重新开始的时间和费用可能会很大。MMCloud通过与第三方高性能文件系统的集成,提高了文件操作的效率,并在Nextflow工作流中展现了显著的优势。
05 调整云资源大小
云服务商提供的计算实例有各种各样,小到只有一个vCPU和500 MB内存,大到有192个vCPU和1.5 TB内存(有些专业实例甚至更大)。选择最适合进行科学工作的云资源大小是一项复杂的任务。
调整资源大小以适应负载高峰是比较安全但效率较低的方法,而调整以适应平均负载可以降低成本,但可能会导致性能不佳,甚至可能出现内存溢出错误(OOM)。
MMCloud的WaveRider功能使这个过程变得简单易行,无需手动为每个任务选择实例。WaveRider能够根据任务实时的资源利用情况,智能地将正在运行的作业迁移到最适合的虚拟机。
作业迁移有三种方式:手动、根据策略自动、或以编程方式。您可以随时手动将作业迁移到特定类型的实例,或者迁移到您定义了容量的实例。通过基于规则的策略,WaveRider监测您工作负载的资源利用情况。如果CPU或内存利用率在指定的时间内超过上限,作业将迁移到具有更多虚拟CPU或更多内存的虚拟机。同样,如果下限被突破并在指定的时间内保持低水平,作业将迁移到较小的虚拟机。对于已知资源使用情况的作业,可以在作业脚本中编程迁移,使作业在执行的不同阶段迁移。
通过优化云资源的使用,我们可以对环境的可持续性产生深远的影响。那些能主动释放未被充分利用的资源的用户有助于提高云服务提供商服务器的使用率。较高使用率下运行较少的服务器不仅能减少运营成本,还能降低嵌入式排放。
在如今更加关注气候变化的社会中,优化云资源的使用是减少整个IT行业对环境影响的一步。MMCloud还提供了一个碳排放仪表板,帮助用户了解他们在云中运行作业对环境的实际影响。这就是说,通过合理使用云资源,我们可以在IT行业中减少碳足迹,对地球做出积极的贡献。
结论
将HPC工作负载迁移到云端,或在需要时将工作负载迁移到云端,不仅在成本、可扩展性、效率方面有好处,还对环境友好。尽管云中存在一些可操作性和成本控制的挑战,但这并不妨碍用户充分利用云计算或混合云架构的优势。