云计算可以用来替代高性能计算吗?

周末看了两篇有趣的论文,关于云计算的,云计算被称为 “scale by credit card” 的技术,看看 credit card 足够多的话能不能用来替代高性能计算(HPC),能不能替代那些超级计算机和集群:)。一篇是:Benchmarking Amazon EC2 for high-performance scientific computing;另一篇是:Can Cloud Computing Reach The TOP500?

云计算大致可以分为以下三种,目前关于云计算做 HPC 的探讨主要集中在 IaaS,Amazon EC2/S3 是 IaaS 的典型代表,也是目前最好的 IaaS 服务商:

1、Infrastructure-as-a-Service(IaaS)
2、Platform-as-a-Service(PaaS)
3、Software-as-a-Service(SaaS)

第一篇文章作者使用 NAS Parallel Benchmarks 比较了云计算的 Amazon EC2 Cluster 和传统 HPC 的 NCSA Cluster,为了测试两者硬件配置基本相同:

Amazon EC2 Cluster NCSA Cluster
7 GB memory, 4 CPU cores per processor (2.33-GHz Xeon), 8 CPU per node, 64 bits, 1690 GB storage 8 GB memory, 4 CPU cores per processor (2.33-GHz Xeon), 8 CPU per node, 64 bits, 73 GB storage
High I/O performance (specific
interconnect technology unknown)
Infiniband switch

测试结果一点也不惊讶,显然专门的 HPC 集群要快一些。在计算方面,即使在单个 node 上,EC2 也要慢7-21%,如果在 32 CPUs 上则要慢40-1000%,而且 node 之间还没有通信,算上通信会慢更多;在网络性能和延迟方面,EC2 没办法和专门为 HPC 打造的 Infinband switch 比。

第二篇文章得到类似的结果并且认为,如果云计算厂商有意进入 HPC 市场的话,并且能在内存、网络延迟、价格方面有所改进的话,对于 HPC 来说云计算还是很有吸引力的。两篇文章都得出类似的结论,虽然云计算在 web services 领域如火如荼,但是在 HPC 领域还没有准备好。用 Cloud Computing 进行计算的花费随着计算复杂度的增加而指数增加,这一点和 HPC 是一样的,并不能带来特别的好处。

Amazon EC2 远远没有达到 HPC 的性能,目前替代 HPC 还太早。我们知道一台超级计算机的价格太高,而且资源稀缺,不是买一个放在那里就完了,电源、机房、设备、人力导致总体成本更高。一般高校、研究机构都养不起超级计算机。个人认为云计算在 HPC 领域还是可以有所作为的,对与要求不高的 HPC 云计算可以按需付费使用,不必自己养一台庞然大物,养超级计算机每年的电费可能都超过了付给云计算的服务费。虽然目前云计算对于商业 HPC 的应用还不成熟,但足够用来运行一个小计算机集群,供小规模的 HPC 应用。或者云计算可以作为已有的超级计算机集群的扩展,某个高峰时期现有集群不够用时临时扩展到云计算应急一下。云计算还有一个显而易见的好处就是马上就可以获得,付费马上就可以使用,不必等待超级计算机预算、决策、购买、安装、调试漫长的等待过程,如果对于性能不是很在意,不关心计算速度有多快,云计算是个不错的替代选择。

发表评论