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

pc 2015-06-01

时至今日,云计算已经开始将关注重点转移至应用程序架构的改进方面,旨在借此提高系统的客户吸引力,然而这一诉求在高性能计算领域始终拿不出切实的成果。目前,各大领先云服务供应商都在重构自己的产品与相关基础设施,旨在以更具实用性及成本效益的方式提供计算密集型应用程序。

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

从传统角度看,云技术已经成为一套将应用程序与Dropbox、Gmail、iTunes以及Evernote等存储方案相结合的综合性服务交付架构。“集群的架构方式旨在超越存储而带来其它资源供应机制,例如在自定义网络之上执行来自特定供应商或者由用户自行构建的应用程序,”Bright Computing公司CEO Matthijs Van Leeuwen表示。

与运行在专用硬件平台之上的传统集群方案类似,基于云的集群同样可以将多种不同类型的分布式资源合并起来以支持特定负载用途。其中可能包含利用一套平台实现集群化数据库管理系统(或者简称为DBMS)、高性能计算应用程序或者大数据分析应用程序。以Amazon以及Rackspace为代表的公有云供应商会对自己的资源实例进行预定义,从而在其自己的云基础设施之上构建起多种集群体系。

OpenStack允许企业用户定义自己的资源实例,而后利用这些实例在自己的私有云环境内实现集群构建。物理服务器或者在物理服务器之上通过虚拟机管理程序实现的虚拟机系统通常适用于构建专用型内部集群。对于开发人员而言,各类资源实例之间的最大差别在于抽象化方式的不同,而这也将成为云与专用集群间的本质区别所在。

常见集群使用情况

Leeuwen指出,云集群能够被用于取代或者补充现有的专用型资源。对于运行在最小化专用型硬件——例如笔记本电脑——上的应用程序,云能够作为其“实例化、使用与去实例化”集群。在这种情况下,笔记本电脑本身仅仅充当最终用户进行云集群访问的设备——具体而言,它并不提供任何用于执行计算或者构建网络体系的实例化资源。

而在第二种常见用例当中,基于云的资源能够被作为补充性专用资源。在这类情况下,内部资源会通过云爆发流程成为云环境内的扩展资源组成部分。这部分基于云的资源只需要根据具体需求进行实例化、使用及去实例化。内部环境与云资源之间的这种差别能够以透明化方式呈现给最终用户及多种不同类型的应用程序。

这两类用例都能够应用于公有或者私有云环境当中。企业用户能够建立起自己的应用程序架构,从而直接或者利用Bright Cluster Manager等工具在AWS公有云或者OpenStack私有云内建立集群,这将显著降低前端开发及配置任务的实际工作量。

桥接不同抽象模式的裂隙

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

开发人员所面临的最大挑战在于,相对于专用型硬件而言,网络、CPU以及存储等云资源在配置方面采用完全不同的抽象模式。云环境的运行依托于实例化资源。除了存储之外,基于云的CPU实例在公有与私有云方案中已经相当成熟。最新的云服务产品一般会提供面向特定外部要求的服务与钩子,例如InfiniBand网络连接、GPU加速以及自定义IP网络等等。

任何一种资源都需要经由同样的路径才能为任何一类云环境所使用。由于集群会以路由方式采用具备低延迟与高传输带宽水平的互连体系、加速器与协助处理器以及其它指定资源,所有这些都会在基于云的集群实例当中同时带来严峻的挑战与良好的业务扩展机遇。

“企业用户需要完全依赖于云服务供应商的思路来支持除存储与计算之外的资源实例化效果,”Leeuwen指出。举例来说,AWS能够通过Amazon VPC支持自定义IP网络以及英伟达GPU实例。其中一类优秀的实践在于开发标准化配置或者利用第三方云管理方案来管理存储、计算、网络以及加速器资源,无论它们处于内部环境还是AWS体系之下。

延迟水平对于集群而言至关重要

在构建可扩展集群应用程序的过程当中,保证通信延迟水平处于理想范围之内已经成为最大的挑战之一。其中一项良好实践就是以智能化方式为高性能计算进行数据划分。在数据层面,这需要涉及到考量使用更具成本效益且持久性更好的存储服务,例如AWS S3以及归档服务AWS Glacier,而非成本更高的内存实例。

但在规模更为庞大的网络体系中,挑战则主要体现在保证不同节点之间在处理计算任务时将通信延迟保持在最低水平。对于需要在处理过程中进行大量信息传递的高性能计算应用程序而言,传输延迟正是其最容易面临的性能瓶颈。那些采用MPI等通用型接口的应用程序往往会因此陷入性能低谷,除非开发人员与运营团队能够确保不同节点之间的延迟始终处于最低水平。

如果运行在集群当中的MPI应用程序处于封闭的私有云或者公有云环境之内,那么这个问题其实并不难解决。然而如果运行在独立私有或者公有基础设施内的不同节点之间存在大量MPI流量,那么这个问题就会变得非常严重。

同样的思路也适用于在云环境下运行大数据分析方案。在内部环境以及云基础设施之上部署Hadoop分布式文件系统(简称HDFS)实例往往并没有什么意义。“但如果HDFS实例单独运行在内部或者云环境下,则将带来非常出色的实践效果,”Leeuwen表示。

在对分布式架构进行扩展的过程中,保障性能水平的关键在于采用敏捷型云集成解决方案,Jitterbit公司CTO Ilan Sehayek指出。“让用户自己选择在哪里运行API,又在哪里运行用于支持该API的相关服务。”

“除此之外,我们还需要确保所有通信流程都由一套可扩展信息传递基础设施来实现,从而在API网关与服务之间带来快速且可靠的API请求交付效果。面向集群的服务项目还需要配合高效的缓存技术,从而为API提供理想的响应速度表现”,Sehayek补充道。

相关推荐