一篇读懂超级计算和云计算的经济学

作者:天云软件首席科学家 张福波

10多年前,人们在听说云计算这个名词时, 还是一脸的懵懂,不清楚这是个什么东西, 而超级计算机和超算中心早于云计算几十年就存在了, 只是大众对此并不关心因为离自己太远了。 但是如今云计算已经在我们的生活中无处不在,比如最常用的网盘、社交软件以及各类手机APP背后的运算和存储,几乎都是用云计算作为技术支撑的。

相对于10几年前的形势, 可以说云计算全面成功, 从互联网到媒体,到机场,到路边的广告牌我们都能看到阿里云,腾讯云, 亚马逊云的广告。 云计算成功的核心就是改变了用户从传统的IT采购成本(CAPEX)到运营成本(OPEX)。云计算带来的好处是显而易见的。 比如可用资源规模, 比起自建IT资源, 用户往往受限自身建设的规模,而云计算却没有这个限制。这样当用户短时间业务有峰值需求时, 云就可以很快的为用户准备好大规模的资源。 除此以外云计算的产品和服务种类繁多, 总有一款能满足用户的需求, 还有非常灵活的收费模式也让用户惬意许多。

图片 1 下午4.21.39

和云计算不同, 尽管超级计算(High Performance Computing,简称HPC)要比云计算出现早的许多, 但是超级计算却是很晚才慢慢上云的, 其中的原因是什么呢?本文就这个问题展开一些讨论。

我们先来说说超级计算与云计算的区别吧

  1. 超级计算支撑的是专业大密度、并发式的任务计算, 对硬件环境要求很高;而云服务器主要支撑管理类软件或在线业务, 其运行环境相对简单。
  2. 客户对超级计算的使用需求一般是裸机, 而云计算一般分配给客户的是虚拟机。
  3. 一些超级计算需要高速低延迟网络,比如IB网络,其投入成本很高。云计算一般会使用千兆以太网,少量使用万兆以太网。
  4. 用户从使用的角度上,超算和云计算各有优势短板,应主要考虑自身业务和成本控制。

尽管云计算和超级计算的区别就这几点, 但是这些差别却是本质性的, 云计算受限于其通用性需求很难满足超计算的需求。

图片 2

云计算无法取代超算

云计算如今已经能够为用户提供一些领域的计算能力,但云计算还是不能代替超级计算。大多数研发人员的计算任务是较小规模的,一般云计算的算力能满足其需求。但如果是千万亿次级的计算任务,任务间需要极低的通信延迟,以现在的云计算肯定不是合适的替代者。

目前大多数云计算并不支持超大规模的超级计算,让超算任务去云计算中应用就如同让驾驶F1的赛车手去乘坐公共汽车。

超算主要执行计算密集型的任务,CPU的利用率非常高,因此虚拟化技术对于的CPU利用率作用不大。虚拟化对计算密集型(如果数据能全部放进内存)应用的影响很小,而I/O密集型应用的性能则会有一定下降。基于云计算理念来构建超级计算中心,除了满足传统的或现有的超算用户需求外,更重要的是创造并吸引众多新领域的用户。

虽然云计算是IT发展趋势所在,但就目前状况来看,让云计算替代超级计算机来完成关键业务的研究还远远不够。云计算的易用性会影响传统的超算计算模式,但想在关键应用中取代超算的地位目前很难实现。

图片 3

超级计算和云计算的经济学

为什么会有许多公司和商业机构将他们Web 应用程序从企业的私有IT系统或私有云迁移到公有云上呢?主要原因就是想将企业的IT成本从采购成本(CAPEX)到运营成本(OPEX)的转换。 一来克服资源闲置时的浪费,但在高峰时又不够用的矛盾, 二来通过业务向软件即服务(Software asa Service )交付模式的转变,省去了大量的IT运维人员和服务成本。 从云的运营商角度看问题, 当这些WEB应用平时的资源利用率不高时,为这类应用提供云服务是有利可图的。具体方法就是通过虚拟化技术让资源实现超卖服务, 就像网络宽带运行商将1G的物理带宽同时卖给3-5个需求1G的客户, 赌的就是这些客户不会同时使用峰值。所以云供应商往往选择的是哪些高可变性和低平均利用率应用和业务上云服务, 这样云的供应商就有赚取合理的利润空间。

图片 4

公有云的资源超卖是很重要的盈利模式, 图来源于网络

然而和WEB服务程序不同的是HPC应用程序往往计算资源的利用率很高,所以HPC系统与云业务模型可行的高可变性和低平均利用率的理想属性相冲突。而且,一般情况下HPC用户往往需要一个独享的计算空间。但对于云提供商来说,这意味着分时共享,削峰填谷的做法行不通了, 多租户的机会也没有了,只有提高价格,才能将专用的计算资源租给单个租户。另一方面,云计算的黄金利器虚拟化技术在HPC领域也几乎无用武之地, 因为虚拟化和多租户会影响HPC程序运行的性能。虚拟化是云的一项基础技术,使得用户应用容易部署管理和弹性计算。 但是对HPC来说就不是那样简单, 需要花时间改进HPC程序,另一方面HPC应用程序对网络要求很高也很敏感, 尤其是对网络的低延迟是绝大部分HPC应用程序的需求。为了满足这个需求, 往往需要投资昂贵的高速低延迟的网络比如infiniband。 这个大成本投入与普通云计算小成本投入的以太网络(1 Gbps 到10 Gbsp之间 )形成了鲜明的对比。这也限制了HPC应用程序在云上运行的数量,当网络性能很重要时,我们会发现随着云部署的规模扩大, 运营的收益会逐步递减。基于定价模型不变,为了满足云弹性而创建了太多的虚拟机来满足性能,那么云部署很快就会变得不经济。最后,从CAPEX到OPEX的迁移优势在HPC领域就不那么明显了。当下几乎所有的超级计算中心的建设是由政府或社会机构投资的,CAPEX对超算来说几乎是免费的, 但是其运营成本OPEX则要超算中心自行承担,而运营的收入几乎完全被超级计算机的支持和管理所消耗。目前为止HPC的软件即服务SAAS的案例还很少,尽管这种情况在未来可能会改变,究其原因是数据安全问题, 往往HPC所承担的任务是保密的, 但是我们相信这个问题早晚会解决的。

图片 5

超级计算模式有点像高铁, 造价高且运行时需要独占资源。 图来自于网络

那么HPC上云哪些前提条件可以使得HPC用户和云计算提供商双方可以接受的商业模式?例如,初创公司的HPC需求(仿真或建模)通常没有太多选择, 去购买一台昂贵的HPC计算机是不可能的, 而只能上云来获取HPC资源。与此类似,中小型企业的增长业务变数很大,而不会选择随着需求增长而去扩展现有的私有部署的HPC资源,而宁愿采取随用随付的办法。这主要是规避CAPEX投入成本的风险, 尤其是当业务缩减时冗余的HPC资源是个巨大浪费。 与某个单体有限选择相比,有着大量不同架构(具有不同的互连、处理器类型、内存大小等)的能力的云计算提供商可以为全球范围内的客户服务,而且可以更好地利用资源。把HPC应用程序运行在最经济的架构同时满足性能要求,达到为消费者节省总成本。

 

为了说明HPC-in-the-cloud的可能场景,有研究人员比较了已运行的超级计算机和典型云服务的成本和价格数据。基于对云价格的调查,拿到了云运营商的财务状况,以及超算公布的运营成本,以及各种内外部数据源,估计私有部署的超算成本和公有云计算的成本比大约在2倍和3倍之间是一个可信的近似范围。2倍是指私有部署超算每核时的费用是公有云每核时的2倍。由于这些数据会常常变化,在不可预见的将来,我们把这个差价区间扩大到了1倍到5倍之间的范围。

图片 6

一些专家专门做了HPC上云的盈亏平衡点,当差价比值的倍数<1的时候,运行在私有集群划算, 反之运行在公有云上划算。 同时他们还发现这个比值和并发运行的核数相关, 当核数规模小的时候, 在云上运行时划算的。 但是当核数超过一定的规模后就会适得其反。所以HPC上云的盈亏平衡点是应用程序弹性和成本比率的函数。

 

所以限制超算计算上云的不是个技术障碍,而是个经济学问题。目前HPC上云的主要障碍:

1) 经济利益的考虑, 尤其对云服务提供商来说,提供HPC服务的成本远高于普通云计算服务。

2)HPC应用一般独占服务器资源, 超卖和弹性变得困难。

3) 数据安全问题,HPC用户往往对数据保密安全要求比较高。

以上也是HPC迫切需要解决的问题和发展方向,随着科技的进步,未来对于HPC的需求会越来越广泛,从国家科研到企业创新再到个人发明,HPC将会是一切的发明创造的基础,让我们拭目以待吧。