核心提示:云计算将让应用“脱离”硬件的束缚。因此,性能也许没有你预计的那样的重要,云计算中的高性能计算可能对于某些应用是好用的,但是,作为一个通用的解决方案,还有更多的工作要做。
过去,当有人问我有关“云高性能计算”的问题时,我会指出有一项重要的努力要让高性能计算应用程序尽可能地接近硬件,而云计算将让应用“脱离”硬件的束缚。因此,性能也许没有你预计的那样的重要,更重要的是没有输入/输出性能(无论是存储还是计算)的保证。因此,云计算中的高性能计算可能对于某些应用是好用的,但是,作为一个一般的解决方案,还有更多的工作要做。
最近,亚马逊Web服务通过为其EC2(弹性计算云)服务推出集群计算机实例朝着这个方向迈出了一步。这个实例是为高性能计算应用程序设计的并且具有下列功能:
•23GB内存
•33.5个EC2计算单元(2 x 英特尔至强X5570四核Nehalem处理器)
•1690GB的实例存储(在两个卷中)64位平台。
•输入/输出性能:万兆以太网
这种8个实例(提供64个内核)的实例类型有一个默认的使用限制。你可以向亚马逊要求更多的实例。至于价格,一个实例每小时1.60美元或者一个集群实例每小时12.80美元。如果你要在不投资新的硬件的情况下运行一些新的工作(甚至工作量很大的任务),这个价格还是不错的。此外,一度是重要的生产周期的资本开支的东西现在是一项随时可用的运营开支。
到目前为止,一切都很。但是,它真的有效吗?答案是当然有效,这完全取决于你的应用。从性能方面看,高性能线性测试标准(HPL)的结果是与使用万兆以太网建立的类似的集群一致的。据这个博客称,亚马逊在880集群计算机实例(7040个内核)上运行了HPL并且测量出整个性能是每秒41.82万亿次浮点运算(英特尔编译程序、MPI和MKL)。这个性能使EC2集群在目前的500强超级计算机排行榜上排名第146位。除了HPL,我发现劳伦斯伯克利国家实验室的一位计算机科学家Keith Jackson的说法最有趣。
他说,许多科学研究领域需要高吞吐量、低延迟、应用程序之间能够迅速沟通的相互连接的系统。因此,我们很高兴与亚马逊Web服务合作在亚马逊EC2的集群计算机实例上测试我们的高性能计算应用程序。在我们的广泛的基准测试中,我们发现我们的高性能计算应用程序在亚马逊EC2的集群计算实例上运行的速度比亚马逊以前的EC2实例类型快8.5倍。
这种改进是非常重要的,因为对于非高性能计算EC2实例来说,速度慢10倍是正常的。当然,它没有你的数据中心中的集群做得那样好。但是,这些结构足以让你认认真考虑这个事情。
缺少InfiniBand对于某些用户来说是不能使用这种服务的一个原因。在这种情况下,你要查看一下Penguin Computing公司的“Penguin On Demand”服务。然而,使用万兆以太网是一个很大的促进。当然,令人尴尬的并行应用程序在这种类型的硬件上将能够很好地工作。还应该指出的是,这种高性能计算实例使用硬件辅助的虚拟化,而不是其它类型的EC2实例使用超虚拟化(如,Xen),并且需要从EBS(弹性块存储)启动。这需要用户创建自己的亚马逊机器镜像(AMI)。有一个基于Centos的AMI能够用于创建你自己的AMI的基础。
谈到存储,缓慢的存储是许多高性能计算应用程序的杀手。如果你对使用EC2有兴趣,并且需要快速存储,请阅读和研究这个小组在BIOTEAM网站发表的这个博客。在EC2云计算机中,有一个用于存储云计算中的计算实例之间的数据的一致的存储(BES)。每一个计算实例中都包含两个840GB短暂的磁盘容量(也就是说在这个实例完成之后就消失)。在测试之后,他们建议说,使用这种短暂的磁盘作为临时的存储,可能与PVFS2或者集群一起使用,然后把数据转移到S3存储桶或者EBS卷中进行长期存储。这也许是可行的和快速的解决方案。当然,这需要使用实际的应用程序进行更多的测试。但是,短暂的输入/输出性能对于高性能计算来说似乎是很高的和一致的。
EC2让我感兴趣的一个方面是与Sun网格引擎(现在叫作甲骨文网格引擎)结合在一起。这种做法通常是指“云益处”。我不知道我是否喜欢这个名字。不管怎样,想象一下坐在你的办公桌旁把工作交给一个本地集群或者一个EC2高性能计算集群的情况。也许你的计算已经完全分配完了,也许它关机了或者速度非常慢,或者你也许根本就没有一个集群。如果你有一个EC2账户,你可以简单地“提交你的工作”。
简单的随需应变的高性能计算的承诺是一个令人激动的选择。过去制约高性能计算增长的因素之一是需要有能力的管理员和基础设施(也就是空间、电力和冷却)。例如,如果我是一个小型工程公司,小型计算机集群只是根据每个合同的情况零星地使用。这样,购买一个小型计算机集群也许是没有意义的。根据应用程序的情况,这些资源现在可以在线路上提供,其成本是可以预计的。
当然,我们在云高性能计算方面还没有达到这个程度。我认为,亚马逊EC2更接近了一步。我预计其它厂商也会跟上来。它确实拥有我认为从一开始就推动集群高性能计算增长的一个功能。试用一下是很便宜的。