现在的位置: 首页 > 自动控制 > 科技·视野 > 正文

从“牛”计算到云计算

2010-06-17 09:21 科技·视野 ⁄ 共 7990字 ⁄ 字号 暂无评论

周洪波 同方软件股份有限公司CTO

一.    引言

云计算是近年来风靡IT业界的一个词,自从2006年Google首次提出以来,诸多公司,不论大小,竞相标榜自己的“云计算服务”, 业界迅速卷入“云端”,带来一片”鸡犬升天”的繁荣景象。云计算是“皇帝的新装”,这一点大部分了解其来龙去脉的人是认同的,但这一轮新的热潮是否蕴含了新的发展机遇?也是仁者见仁,智者见智。 但至少目前它又形成了潮流,就连Oracle的老板Larry Ellison都没办法,他去年曾表示,“我完全搞不懂那帮家伙在说些什么,省省这种愚蠢的概念吧”。然而,甲骨文最近也开始贴上“云计算”的标签,在2009年初的财报会议上,埃里森表示,“甲骨文即将发布的软件已经为云计算做好了准备”。

笔者从80年代开始在国内做并行计算,参与了李三立院士当年的Transputer合作项目,用于构建并行图像处理的Pyramid系统架构。回想起来,那时的理念一点也不比现在的落后,所谓Transputer,就是“Transistor+Computer”,基于图灵奖获得者Hoare教授的CSP理论,就是说未来做并行(云)计算大系统,把Transputer当积木(Lego)搭起来就行了。和软件业界很多人推崇的“构件库”概念一样,这种想法理论上是成立的,但实际未必可行。

笔者后来去国外学习,博士论文做的是关于计算问题的并行分解技术和算法。毕业后在1993年有幸加入了美国Oak Ridge国家实验室Jack Dongarra教授(他每年6月发布世界超级计算Top 500强名单)的PVM/MPI研发团队,作为博士后研究员做“牛”计算(COW,也就是Cluster of Workstations)。PVM团队做的PVM/MPI等系统目前仍然是国内外超级计算机的核心基础“标配”软件之一,用到了包括国内著名的曙光、深腾、和最近的天河一号超级计算机上。当时美国的几个国家实验室都在做并行系统的研究和开发,这个圈子的人中也包括Argonne实验室的Ian Foster教授,有人认为他是云计算之父,因为云计算的前身, 网格计算的概念是他提出来的。

笔者于1995年加入IBM公司的 SP并行系统部门,参与了当时世界上最快的超级计算机ASCI-Blue Pacific的研发工作,负责作业调度系统的研发(和IBM Loadleveler类似的openPBS,Condor等(免费)作业调度系统,也是国内外超级并行计算系统的“标配”软件之一)。2000年在硅谷带领一个团队成功开发了一个基于“牛”计算技术和JAVA前端的人类基因组计算系统,作为当时世界首例,全面成功“注释”了当时所有的人类基因组,CNN和旧金山纪事报等10多个世界主要媒体都作了报道。按现在的话说,这是一个早期的基于云计算后台技术的生物计算SaaS门户。

作为较早从事过云计算的“老人”,笔者认为,从牛计算到云计算的发展和转变,是一个计算机的大众化商业应用(尤其是互联网商业化和搜索技术的发展)导致的转变,主要标志就是从主要服务于科学计算的“计算中心”转变到主要服务于互联网/广义的SaaS/搜索技术等的“数据中心”。

二.    超级计算,Steve Chen

国内70和80年代各大学和研究所计算中心的主要用机是IBM的Mainframe,DEC的VAX系统等,当时超级计算这个词还没正式提出来。90年代开始,美国建立了很多超级计算中心,每年召开超级和高性能计算(SC’09是最近的)大会,规模都很大,参与的厂家也很多,有点像现在的CES。80年中后期和90年代初期的SC中心的主要用机是美国CRAY和日本NEC,Fujitsu等公司生产的专用超级计算机,主要以向量计算机为主。CDC STAR-100 是首先使用向量处理器的计算机(是被誉为超级计算机之父Cray博士最早的 “工作单位”),当时国内也有国防科大中国(巨型)计算机之父慈云桂教授主持开发的“银河-I”亿次超级向量计算机, 这在当年无“外援”,所有“零部件”和软件都得自力更生的情况下,的确是了不起的成就。后来的银河II号,以及90年代初的曙光一号SMP计算机等等,自主创新的程度都很高,那时虽然也是学国外技术,往往总是比国外落后几年,但真是我们自己做出来的。

说到专用计算机,就不得不提美国Cray公司和Steve Chen(陈世卿, 这个Steve Chen和Youtube创始人Steve Chen(陈士骏)英文同名)。1979年陈博士加入了垄断世界超级电脑市场的克雷公司,他用了三年时间于1983年开发出世界上第一台2 CPU的并行向量式超级计算机(Cray X-MP/2),把并行理念成功应用到向量计算机,由此奠定了世界上并行向量式超级计算机系统架构的基础。1991年经美国总统尼克松的国家首席科学顾问提名,陈世卿院士被选为美国国家工程院院士。1988年三月美国《时代》杂志将他作为封面故事人物。2002年陈博士回到中国,于2005年开发出第四代速度为4万亿次的超级刀片计算机,在当时Dongarra教授公布的世界超级计算机500强中排名第100位。如果陈博士能够提前15年回到中国,他可能是又一个钱学森,郭永怀式的人物。郭老的贡献是带领大家搞核试验,他的贡献应该是带领大家不搞核试验,用超级计算机模拟核试验,这样中国可能可以提前10年加入“禁止核试验”俱乐部(印度就比中国还晚了很多年),提前很多年签署核不扩散条约,这是后话。

90年代中后期,由于著名的Moore定律效应,基于通用CPU的Workstation和PC的计算能力迅速提高,一台Workstation的计算能力已经超过了早年的“超级计算机”。由于通用CPU在大规模生产上的成本优势,基于向量计算的超级计算技术基本上已近走到尽头,Cray等几家基于SIMD,PVP,VPP技术的超级计算机生产厂商纷纷倒闭或改变技术路线,日本NEC, Fujitsu等公司也退出这个行业。 基于通用CPU的超级计算机成为主流后,笔者认为,国内推出的超级计算机系统技术含金量就不如以前了,由于市场的不断开放,世界“变平了”,很多“零部件”和核心软件都可以直接买到或“拿来”(开源的)。 结果是, 我们推出的超级计算机“整机系统”和国外的差距的确是越来越小了,性能指标可以排到世界前列,甚至第一,但核心部件和软件都不是自己的,实际上和国际技术水平是拉大了,而不是缩小了。

在“牛”计算出现之前,还出现过一些基于SMP,NUMA,MIMD,MPP等技术和通用CPU的专用型超级计算机系统, 如 Intel Paragon, SUN公司推出的CM, HP 的Convex, nCube, KSR等等。 这些公司同样也是受到了Moore定律的冲击赚不到钱而退出市场或倒闭。

三.    “牛”计算改变格局,做超级计算机就像组装PC

COW(笔者称之为“牛”计算,是因为这个理念确实很“牛”,也叫POP, Pile Of PCs,)的出现改变了超级计算的格局,他使超级计算的核心技术由原来的以硬件和体系架构为主变成了以软件为主。

牛计算 pk 云计算

牛计算也属于MPP, 只是他是一种松耦合的MPP,相对于IBM 的SP、国内的曙光等那样的紧耦合MPP,主要区别就是连接计算节点之间的网络(或叫HPS,High Performance Switch)不一样。早年IBM的SP机器的HPS都是自己做的,例如给LLNL实验室做的那台ASCI-Blue Pacific, 当时美国副总统Gore亲自签署的1.1亿元的项目,做完了IBM还是赔钱。于是后来HPS也不做了。后来的SP机器都是用普通的RS6000加上OEM的HPS搭建而成的。 HPS好比路由器,是CISCO这样的公司做的事,但是由于对传输速率和延迟等参数要求较高,又不通用,一般也是一些专业的小公司在做,例如Myricom公司的Myrinet,以及Infiniband和Quadrics等,这几家公司占据了HPS市场绝大部分份额。

IBM的SP超级计算机也主要用的是PVM,MPI等做核心软件系统,外加一些提高HPS使用效率的运行环境(如IBM的POE),以及作业调度系统,如IBM的LoadLeveler。

技术发展到这一步,做一台MPP超级计算机和组装一台PC也没什么太大的区别了。只要“不差钱”,买来Off-the-Shelf(现成的)的计算节点,再买来Infiniband、Myrinet那样的HPS, 配上PVM/MPI, 以及PBS/LSF等软件(而且大部分还都是免费的,另外,根据计算任务的不同,可能还需要配HPF(High Performance FORTRAN)并行编译语言系统,openMP,LinPACK标准软件包等等,这里不再赘述),就可以组装成一台超级计算机了。对于知道如何做的专业人士和厂商,难度可能和做一个大型的系统集成项目差不多,主要技术难点在于整体系统的配置,组装联调,和散热等问题。MPP系统的节点可以是Wintel架构的PC,也可以是运行各种Unix或Linux的RISC系统, 如IBM RS6000, HP的小型机等,在组装上多以刀片机的形式装到Rack机柜上(如下图右边,橡树岭国家实验室世界上最快的Jaguar超级计算机,由几千个AMD的CPU搭成)。当然如果有的计算中心还有以前的超级计算机,舍不得扔掉,如Cray等机器,也可当成一个大节点来用,算整个MPP系统的一部分。

一台超级计算机,基本上如果节点数量多,每个节点的计算能力都很强,也就是说资金投入足够大,基本上就可以在Top 500名单中占据一席之地,因为做法都是公开的,验证的应用(主要是验证系统对LinPack软件包等的Peak 性能)也是公开的。一台超级计算机能否发挥作用,主要还是要看使用它的应用程序能否有效的被分解,分解后能否和系统充分匹配,利用好系统的资源。最坏的情况,如果一个算法不能分解,把它拿到超级计算机上运行可能和拿到一台PC上运行的执行速度是一样的。

早期的COW系统中的计算节点主要都是闲置的计算资源,如办公室中的桌面工作站,普通的PC等,采用普通的局域网进行连接。因为这些计算节点白天会作为工作站使用,所以主要的集群计算发生在晚上和周末等空闲时间。SETI@HOME是牛计算的典型应用之一,这是一项利用全球互联网上的闲置计算资源共同搜寻地外文明的科学实验计划,超级计算走入千家万户。 超级计算这个词在业内逐渐被HPC高性能计算, HTC高吞吐计算等词所取代。

HPC计算的主要应用是科学计算,包括核爆炸的模拟,采掘业的模拟计算,气象预报计算等等。随着互联网的发展和普及,HPC计算技术越来越多的被用到了海量数据的存储和查询的应用中,例如Google, Amazon, Ebay,Salesforce.com,包括近期出现的FaceBook, Twitter, LinkedIn等社区网站,以及国内的新浪, Alibaba, 盛大等等,这些公司都需要建立庞大的“牛计算”系统,用的机器多半都是常规的Linux PC,组成叫Server Farms的大系统。

在这样的系统中,计算能力不再是最关键的因素,HPS也不是必需的,高效的海量存储和处理能力成为核心。因此HPC, 超级计算这样的词也逐渐让位给网格计算,云计算这样的更贴近于大众化语言的新词。

四.    云计算的核心是支撑“XaaS”:从“计算中心”到“数据中心”

云计算是并行计算、分布式计算(牛计算)和网格计算的发展,或者说是这些概念的商业化实现。云计算代表了HPC从科学计算到大众化商业应用的变迁,使以前最烧钱和不赚钱的超级计算产业变成了赚钱和省钱的生意。云计算使以前的“计算中心”边缘化,“数据中心”成为主流。

云计算也是虚拟化、效用计算、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)、HaaS(硬件作为服务)等XaaS(一切皆服务)概念和技术混合演进的结果。笔者认为云计算的卖点主要有两个:一是节省硬件投资,基于虚拟化,IaaS,PaaS,HaaS等理念和手段;二是SaaS,云计算和SaaS是一对“黄金搭档”,云计算托起SaaS, SaaS保持用户对云计算的粘性。 归根结底,没有SaaS, 云计算就没有根基。 这里说的SaaS是广义的SaaS,即任何通过浏览器就能实现的软件服务都属于SaaS,而不只是Salesforce所说的多租户(Multi-Tenants)概念下的狭义SaaS。 网上银行(一般是单租户)是SaaS,美国的TurboTax网上报税系统也是SaaS, Google那样的搜索门户也是SaaS(无租户),新浪那样的信息门户也是SaaS,Amazon, Ebay,FaceBook这样的门户就更不必说了。

当年的ASP后面其实就是云计算,Exodus这样的一批数据中心公司在.COM年代就曾经风光无限,但后来全军覆没,更本原因就是他们没有做XaaS应用,没有把握住用户的粘性。所以,前车之鉴,单靠推广IaaS/HaaS的云计算,作为一种商业模式,也多半是要失败的。

Amazon使用弹性计算云(EC2)和简单存储服务(S3)为企业提供计算和存储服务。收费的服务项目包括存储服务器、带宽、CPU资源以及月租费。Amazon把云计算做成一个大生意花了不到两年时间。 Amazon上的注册开发人员达44万人,还有为数众多的企业级用户。有第三方统计机构提供的数据显示,Amazon与云计算相关的业务收入已达1亿美元。云计算是Amazon增长最快的业务之一。但是,别忘了Amazon成功的关键在于它的主营业务保持了用户的粘性,一亿美元的云计算业务相对于他的电子商务主营业务其实可以忽略不计,属于现有资源的扩展利用,锦上添花(Nice to have)的事。

Google当数最大的云计算的使用者,其搜索引擎就建立在分布在200多个地点、超过100万台服务器的支撑之上。 Google地球、地图、Gmail、Docs等也同样使用了这些基础设施。采用Google Docs之类的应用,用户数据会保存在互联网上的某个位置,可以通过任何一个与互联网相连的系统十分便利地访问这些数据。目前,Google已经允许第三方在Google的云计算中通过Google App Engine运行大型并行应用程序。所有这些应用的核心理念还是SaaS。

SaaS是对微软帝国最大的威胁,这也是为什么微软诋毁Google的云计算的原因所在。当然,和Oracle一样,微软也可能是“被逼无奈”才大谈云计算,但是,此“云计算”非彼“云计算”,各有目的。微软推出的Windows Azure云计算“操作系统”其实是自相矛盾,和云计算理念基本是背道而驰的,因为云计算的目标(之一)就是要消除Windows这样的“操作系统”的存在。

在我国,云计算发展也非常迅猛。IBM在中国无锡太湖新城科教产业园建立的中国第一个云计算中心去年投入运营,去年IBM在北京的中国创新中心成立了第二家中国的云计算中心—IBM大中华区云计算中心。也是2008年底,阿里巴巴集团旗下子公司阿里软件与江苏省南京市政府正式签订了2009年战略合作框架协议,计划于2009年初在南京建立国内首个“电子商务云计算中心”,首期投资额将达上亿元人民币。中国移动也推出了BigCloud(大云)。 笔者认为,阿里巴巴做云计算是合乎逻辑的,因为他有很大的SaaS业务资源。如果是自己的“内部需求”,如中国移动,已有很大规模的ADC数据中心,引入云计算技术充分发挥现有资源的作用,也是合乎逻辑的。其他情况下建立的云计算中心,业务模式似乎不清楚,大概也就是原来的“计算中心”的升级版。

在笔者看来,国际几大巨头中,IBM推云计算是最“匪夷所思”的,因为IBM没有任何SaaS运营业务。IBM推出的“改变游戏规则”的“蓝云”计算平台也是没有根基的,和当年的Exodus一样,没有粘性。相信IBM也不指望靠HaaS服务赚钱。 IBM推云计算的意图多半也是想卖他的服务器和软件。

云计算的服务对象是数据中心,所以从技术层面来说,以前HPC系统中常用的软件系统,如PVM/MPI/HPF等都已经派不上大用场了(不过Amazon的CloudMaster基本上就是原来MPP系统中“作业调度”系统从新包装的结果),于是出现了许多新的算法和软件系统,例如Google推出的MapReduce, GFS, Bigtable等,以及MapReduce的开源实现Hadoop等,主要的的东西还是出自Google的,其他人大都在效仿,例如财大气粗的中国移动推出的HugeTable, HyperDFS等技术就有明显的效仿嫌疑。

五.    社会效益和商业模式?

有些人视云计算为第三次IT行业变革时代的开始,很多专家也预测云计算在中国将会有一个广阔前景。在国外,人们主要谈商业模式,在国内,我们还要考虑社会效益。要想使云计算在中国有一个更美好的未来,两点很关键:政府需要看到社会效益, 商家需要看到商业模式。前者可以推动后者,但不能保证后者的成功。

关于社会效益,笔者在前面提到的云计算的两个卖点中的第一点: 节省硬件投资,充分利用已投入的资源。 这一点显然是符合中国目前“建设节约型社会,发展循环经济”的大政方针的,社会效益不言自明。云计算可以集中资源,缓解目前国内普遍存在的”低水平重复建设”的老大难问题。

但是,目前云计算的模式对解决这个问题没有清晰的可操作性。由于受到相关法规,财政预算制度,和消费习惯的影响,云计算的发展有三大障碍:第一,多数中国企业对从外部采购数据存储服务信心不足,担心会失去对数据的控制。宽带接入速度还太低,无法保障优质的云服务。第二,财政预算制度不支持云计算和SaaS服务所提倡的按需(包括分期)付款的模式,往往上级领导批了一笔钱,都是按项目模式,专款专用,限期必须花完, 服务模式行不通。如果没有项目招投标,灰色收入也没了,谁愿意精打细算按服务模式做事?干好了也是下一任领导的业绩。第三,国民文化习惯也不支持云计算/SaaS的“租用”模式,中国人喜欢“拥有”,而且还要是新的。下图中描述的产业链,如果上述问题处理不好,是很难形成的。

关于商业模式,目前中国还没有Google Docs, Amazon EC2, Salesforce等这样一批在XaaS业务方面有足够粘性作为基础开展云计算业务的企业,很多企业,尤其是大企业,的云计算计划往往是其研发部门提出来的,只是想在业界有一个声音, 而不是真实的公司决策层提出的云计算战略规划。国内许多企业参与追捧云计算,一些企业在跟风时其实自己想得很清楚,目的之一也是想借机得到政府的支持。笔者认为,阿里软件可能是中国少有的几家有基础做SaaS和云计算的企业之一,不过因为总经理的离职而使这项业务陷入变数。也有一些以前做ASP和SaaS的公司,想通过云计算(和SaaS)的理念重新包装自己。另外,在金融领域,云计算可能是率先能够得到成功应用的,例如在银行的柜台和ATM机,云终端(其实也就是以前的瘦PC)的使用比较顺理成章,云终端比用PC更安全(陈冠希的照片就是因为不小心进入了云计算的“大云”里),也可降低成本。当然没想明白的也有不少,从很多公司的业务模式定位上就能看出来,他们以为真的找到了新的发展机遇,花了很大力气做,最终可能发现他们的业务模式更本不成立,是人家早就玩过的东西。

云计算要在中国获得成功,还有很长的路要走。笔者认为,云计算是一个很好的业务模式,尤其是他的成功实施会带来很好的社会效益,社会效益的提升必将带来云计算产业的繁荣和各种云计算商业模式的成功,虽然困难不少,但这条路还需走下去,让我们祝愿云计算在社会效益和商业模式方面都能够在中国取得真正的成功。

给我留言

留言无头像?