当前位置: 首页 > 科技观察

基于云集群实现高性能计算的最佳实践

时间:2023-03-15 14:55:58 科技观察

今天,云计算已经开始将重心转移到应用架构的改进上,旨在提高系统的客户吸引力。高性能计算领域始终无法拿出实实在在的成果。目前,所有领先的云服务提供商都在重组其产品和相关基础设施,旨在以更实用、更具成本效益的方式提供计算密集型应用。传统上,云技术已经成为一种综合服务交付架构,将应用程序与存储解决方案(如Dropbox、Gmail、iTunes和Evernote)相结合。BrightComputing首席执行官MatthijsVanLeeuwen表示:“集群的构建方式旨在超越存储,引入其他资源配置机制,例如在自定义网络上执行供应商特定或用户构建的应用程序。”与运行在专用硬件平台上的传统集群解决方案类似,基于云的集群也可以结合许多不同类型的分布式资源来支持特定的负载目的。这可能包括利用集群数据库管理系统(或简称DBMS)、高性能计算应用程序或大数据分析应用程序的平台。以Amazon、Rackspace为代表的公有云提供商预先定义了自己的资源实例,在自己的云基础设施之上构建各种集群系统。OpenStack允许企业用户定义自己的资源实例,然后利用这些实例在自己的私有云环境中实现集群建设。物理服务器或由hypervisor在物理服务器上实现的虚拟机系统通常适合构建专用的内部集群。对于开发者来说,各类资源实例最大的不同就是抽象的不同,这也将是云集群和私有集群的本质区别。常见的集群用例Leeuwen指出,云集群可以用来替代或补充现有的专用资源。云可以充当在最小的专用硬件(例如笔记本电脑)上运行的应用程序的“实例化、使用和取消实例化”集群。在这种情况下,笔记本电脑本身仅充当最终用户访问云集群的设备——具体来说,它不提供任何用于执行计算或构建网络架构的实例化资源。然而,在第二个常见用例中,基于云的资源可以用作互补的专用资源。在这种情况下,内部资源通过云爆发过程成为云环境中扩展资源的一部分。这些基于云的资源只需要根据特定的需求进行实例化、使用和去实例化。本地资源和云资源之间的这种区别可以透明地呈现给最终用户和许多不同类型的应用程序。两种类型的用例都可以应用于公共或私有云环境。企业用户可以构建自己的应用架构,从而直接或使用BrightClusterManager等工具在AWS公有云或OpenStack私有云中构建集群,大大减少前端开发和配置任务的实际工作量。桥接不同抽象的Rift开发人员面临的最大挑战是网络、CPU和存储等云资源的配置抽象与专用硬件完全不同。云环境的运行依赖于实例化的资源。除了存储之外,基于云的CPU实例在公共和私有云解决方案中也得到了很好的应用。最新的云服务产品一般都会针对特定的外部需求提供服务和hook,比如InfiniBand网络连接、GPU加速、自定义IP网络等。任何一种资源都需要经过相同的路径才能被任何一种云环境使用。由于集群使用具有低延迟和高传输带宽水平的互连结构、加速器和协处理器以及其他指定资源进行路由,所有这些都对基于云的集群实例提出了严峻的挑战和良好的业务扩展机会。“企业用户需要完全依赖云服务商的思路来支持存储和计算以外的资源实例化效果,”Leeuwen指出。例如,AWS可以通过AmazonVPC支持自定义IP网络和NvidiaGPU实例。一类良好实践是开发标准化配置或利用第三方云管理解决方案来管理存储、计算、网络和加速器资源,无论它们是在本地还是在AWS下。#p#延迟水平对集群至关重要在构建可扩展集群应用程序的过程中,确保通信延迟水平在理想范围内已成为最大的挑战之一。这些良好做法之一是为HPC智能分区数据。在数据层面,这涉及考虑更具成本效益和持久性的存储服务,例如AWSS3和归档服务AWSGlacier,而不是更昂贵的内存实例。然而,在更大规模的网络系统中,挑战主要体现在处理计算任务时如何保证不同节点之间的通信延迟保持在最低水平。对于在处理过程中需要传输大量信息的高性能计算应用,传输延迟是最有可能成为性能瓶颈的问题。使用MPI等通用接口的应用程序往往会遭受性能下降的困扰,除非开发人员和运营团队可以确保不同节点之间的延迟始终处于最低水平。如果集群中运行的MPI应用是在一个封闭的私有云或者公有云环境中,那么这个问题其实并不难解决。但是,如果在单独的私有或公共基础设施中运行的不同节点之间存在大量MPI流量,则此问题可能会变得非常严重。同样的想法也适用于在云环境中运行大数据分析解决方案。在内部环境和云基础设施之上部署Hadoop分布式文件系统(HDFS)实例通常没有意义。“但是,如果HDFS实例在内部或云环境中独立运行,将会带来非常好的实际效果,”Leeuwen说。JitterbitCTOIlanSehayek表示,在扩展分布式架构的过程中,确保性能水平的关键是采用敏捷的云集成解决方案。“让用户选择在哪里运行API,以及在哪里运行相关服务来支持API。”“此外,我们还需要确保所有的通信过程都由一套可扩展的消息传递基础设施来实现,从而在API网关和服务之间带来快速可靠的API请求传递。面向集群的服务项目也需要配合高效的缓存技术为API提供理想的响应速度性能”,Sehayek补充道。原标题:高性能计算与云集群