你好,游客 登录 注册 发布搜索
背景:
阅读新闻

周洪波:从“牛计算”到云计算

[日期:2010-01-27] 来源:新浪科技  作者:周洪波 [字体: ]
以互联网商业化和搜索技术为代表的大众化商业应用推动“牛计算”演变为云计算。

  从集群计算(即“牛计算”)到云计算的转变,是大众化商业应用,尤其是互联网商业化和搜索技术推动的结果,正是这些商业应用的普及使得主要服务于科学计算的计算中心演变为主要服务于互联网、广义的SaaS、搜索技术等的数据中心。

  ■ 周洪波 博士

  从“牛计算”到云计算

  云计算是近年来风靡IT业界的一个词, 无论它是否真能带来发展机遇,但它已经成为一种潮流,如果你不入流,就不能和大家说同一种语言,也就“OUT”了。好比股市的一波大行情来临,尽管可能会有泡沫,还是会有很多人参与其中,因为如果不参与,就可能失去赚钱的机会(对于云计算,可能会失去得到政府资助的机会),尤其在这波行情还没结束的时候。就连当初并不太认同云计算的Oracle CEO拉里·埃里森对此也无能为力,只能无奈地给Oracle也贴上“云计算”的标签。

  云计算是“皇帝的新装”,这一点不少了解其来龙去脉的人是认同的,那么这一轮新的热潮是否蕴含了新的发展机遇?对此问题是仁者见仁,智者见智。笔者并不反对云计算,作为业界较早参与国内外与云计算相关的一些工作的“老人”,笔者可能正好见证了和云计算相关的超级计算技术的发展,觉得自己对云计算,特别是技术发展方面的来龙去脉有一些了解,愿意与大家分享对此的理解。

  “牛计算”是根

  笔者从上个世纪80年代就开始在国内参与并行计算的研究,参与了李三立院士当年的Transputer合作项目,用于构建并行图像处理的Pyramid系统架构。同时代的理论还有美国CMU大学HT孔教授提出的 Systolic 阵列计算机的理念等。应该说,那时的理念一点儿也不比现在的落后,所谓Transputer,就是“Transistor+Computer”,就是说以后做并行(云)计算大系统,把Transputer当积木(Lego)搭起来就行了。

  从“牛计算”到云计算

  笔者后来去国外学习,博士论文研究的是关于计算问题的并行分解技术和算法。毕业后在1993年有幸加入了美国Oak Ridge国家实验室Jack Dongarra教授(他每年6月负责发布世界超级计算Top 500排行榜)的PVM/MPI(Parallel Virtual Machine /Message Passing Library)研发团队,作为博士后研究员做“牛计算”(COW,也就是Cluster of Workstations)。当时美国的几个国家实验室都在进行并行系统的研究和开发,其中包括Argonne实验室的Ian Foster教授,有人称他为云计算之父,因为云计算的前身—网格计算的概念是他提出来的。

  云计算从技术发展来说源于“牛计算”,以及后来在此基础上出现的Globus、Beowulf(Harness the power of COW)集群计算、网格计算等等。从“牛计算”到云计算的发展和转变,是计算机的大众化商业应用(尤其是互联网商业化和搜索技术的发展)导致的转变,主要标志就是从主要服务于科学计算的“计算中心”到主要服务于互联网、广义的SaaS、搜索技术等的“数据中心”的转变。

  笔者后来于1995年加入IBM公司的 SP(Scalable PowerParallel)并行系统部门,参与了当时世界上最快的超级计算机ASCI-Blue Pacific的研发工作,负责Job Scheduler(作业调度)系统(代表IBM LoadLeveler团队)的研发,再后来在硅谷一个初创公司,带领一个团队成功开发了一个基于“牛计算”技术和Java Web前端的人类基因组计算系统。作为当时世界首例全面成功“注释”(Annotation)了当时所有的人类基因组,美国CNN和旧金山纪事报等10多个世界主要媒体都做了报道。按现在的话说,这是一个早期的基于云计算后台技术的生物计算SaaS门户。

  当时研究的PVM/MPI等系统目前仍然是国内外超级计算机的核心基础软件之一,包括国内著名的曙光、深腾(联想)和最近的天河一号(国防科大)超级计算机,都用到PVM/MPI。 另外,和IBM Loadleveler类似的非商用系统,如PBS、Condor等(免费)作业调度系统,也是国内外超级并行计算系统的“标配”软件之一。

  应该说,正是COW(Cluster Of Workstation)计算系统(一种实用的分布式计算系统,也叫POP, Pile Of PCs)的出现改变了超级计算的格局,它使超级计算的核心技术由原来的以硬件和体系架构为主演变成了以软件为主。所以,笔者更愿意称COW为“牛计算”,是因为这个理念确实很“牛”。

  最早的“牛计算”核心软件平台就是PVM,它是由美国Emory大学的印度裔教授 Vaidy Sunderam提出来的,但落地在Oak Ridge国家实验室,本人也有幸成为Oak Ridge PVM 开发组较早的成员之一。由于PVM只是一个事实标准,后来出现了MPI标准,于是有了很多MPI的实现系统,但基本上都是基于PVM系统改头换面做成的。

  “牛计算”也属于MPP(Massively Parallel Processing),只是它是一种松耦合的MPP,相对于IBM 的SP(Scalable PowerParallel)、国内的通用型曙光超级计算机等那样的紧耦合MPP,主要区别就是连接计算节点(通用计算机主机)之间的网络(或叫HPS,High Performance Switch)不一样。

  早年IBM的SP并行MPP机器的Switch都是自己做的,例如给LLNL实验室做的那台ASCI-Blue Pacific,但后来IBM不自己生产Swicth了,之后的SP机器都是用普通的RS6000加上OEM的HPS搭建而成的。Switch好比网络路由器,但是由于对传输速率和延迟要求较高,不通用,一般也是一些专业的小公司在做,例如Myricom公司的Myrinet。

  IBM的SP超级计算机也主要用的是PVM、MPI等作为核心软件系统,外加一些提高HPS使用效率的运行环境或接口(当时IBM的这种系统叫POE,即Parallel Operating Environment),以及作业调度系统,如IBM的LoadLeveler(基于UWM大学Livny教授的Condor系统研发的)。

  做超级计算机就像组装PC

  由于COW的出现以及硬件产品的标准化,使得后来做一台MPP超级计算机和组装一台PC也没什么太大的区别了。只要“不差钱”,买来现成的计算节点,再买来Infiniband、Myrinet那样的HPS, 配上PVM/MPI以及PBS/LSF等软件(大部分是免费的),然后根据计算任务的不同,也许还需要配HPF(High Performance FORTRAN)并行编译语言系统、openMP、LinPACK标准软件包等等,就可以组装成一台超级计算机了。对于专业人士和厂商,难度可能和做一个大型的系统集成项目差不多,主要技术难点在于整体系统的配置、组装联调和散热等。

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

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

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

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

  云计算的核心是支撑“XaaS”

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

  云计算也是虚拟化、效用计算(Utility Computing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)、HaaS(硬件作为服务)等XaaS(一切皆服务)概念和技术混合演进的结果。笔者认为云计算的卖点主要有两个:一是节省硬件投资,通过虚拟化等技术使得IT资源的利用率得到提高,而借助SaaS、IaaS、PaaS、HaaS等服务,用户无需投入资金建立自己的数据中心,就可以灵活满足业务的变化; 二是SaaS。云计算和SaaS成为一对“黄金搭档”,云计算托起SaaS, SaaS保持用户对云计算的粘性。这里说的SaaS是广义的SaaS,即任何通过浏览器就能实现的软件服务都属于SaaS,而不只是Salesforce所说的多租户(Multi-Tenants)概念下的狭义SaaS。基于这个定义,网上银行可以算作SaaS,它一般是单租户的,而Google那样的搜索门户也是SaaS,但它是无租户的。当然,新浪那样的信息门户以及Amazon、Ebay、FaceBook这样的门户也都可以划入SaaS之列,而不仅仅是像Saleforce.com这样的公司提供的那些服务。

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

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

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

  SaaS是对微软帝国最大的威胁之一,和Oracle一样,微软也可能是“被逼无奈”才大谈云计算。但是,此“云计算”非彼“云计算”,各有目的。在笔者看来,微软推出的Windows Azure云计算“操作系统”其实和云计算理念并不一致。

  因为云计算的目标之一就是要消除Windows这样的“操作系统”的存在,而目前Windows是市场份额最高的客户端。

  目前,云计算在我国发展非常迅猛。IBM在中国无锡太湖新城科教产业园建立的中国第一个云计算中心已投入运营,IBM自己在北京的中国创新中心成立了第二家中国的云计算中心—IBM大中华区云计算中心。2008年底,广东电子工业研究院与东莞松山湖科技产业园管委会签约,要在东莞松山湖投资两亿元建立云计算平台。阿里巴巴集团旗下子公司阿里软件也与江苏省南京市政府正式签订协议,要在南京建立国内首个“电子商务云计算中心”,首期投资额将达上亿元人民币。中国移动也推出了BigCloud(大云)。

  这些云计算中心(或者计划)中,阿里巴巴做云计算是合乎逻辑的,因为它有很大的SaaS业务资源;中国移动有自己的“内部需求”,也有很大规模的数据中心,引入云计算技术充分发挥现有资源的作用,也是合乎逻辑的。其他已建立的云计算中心,不少也就是原来的“计算中心”的升级版,它们对业务模式并不清楚。

  在笔者看来,国际几大巨头中IBM的云计算路数有些不同,因为IBM没有任何SaaS运营业务。所以,IBM推云计算的意图多半也是“项庄舞剑,意在沛公”,着眼点还是服务器和软件。

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

  云计算的社会效益和商业模式

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

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

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

  关于商业模式,目前中国还没有Google Docs、Amazon EC2、Salesforce等这样一批在XaaS业务方面有足够粘性作为基础开展云计算业务的企业,很多企业尤其是大企业的云计算计划往往是其研发部门提出来的,而不是真正的公司决策层提出的云计算战略规划。另外,目前国内有许多企业参与追捧云计算,其目的之一也是想借机得到政府的支持。

  笔者认为,像阿里软件这样有基础做SaaS和云计算的企业在中国并不多,另外也有几家以前做ASP和SaaS的公司,想通过云计算(和SaaS)的理念重新包装自己,使业务上一个新台阶。在金融领域,云计算可能是率先能够得到成功应用的,例如在银行的柜台和ATM机,云终端(也就是瘦PC、网络PC)的使用比较顺理成章,云终端比传统PC更安全(安全性是云计算的主要弊端),也可降低成本。当然没想明白的也有不少,从很多公司的业务模式定位上就能看出来,它们以为真的找到了新的发展机遇,其实有很多业务模式根本经不住推敲。

  从“牛计算”到云计算

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

  链   接

  超级计算机从专用到通用的演变过程

  最早的超级计算机始于哪个年代这里不去赘述,这里主要想说说笔者亲身经历过的超级计算机的发展。个人的经历虽然有限,但本人可能正好见证了和云计算相关的超级计算技术的发展。

  上个世纪70和80年代,国内各大学和研究所计算中心的主要用机是IBM的大机(Mainframe)、DEC的VAX系统等,当时超级计算(SuperComputer)这个词还没正式提出来。从90年代开始,美国建立了很多超级计算中心,每年召开超级和高性能计算(SC’09是最近的)大会,规模都很大,参与的厂家也很多,有点像现在的CES。进入20世纪80年代中后期和90年代初期的超级计算中心主要用机是美国Cray和日本NEC、Fujitsu等公司生产的专用超级计算机,主要以向量计算机为主。CDC STAR-100 是首先使用向量处理器(Vector Processor)的计算机(是被誉为超级计算机之父Seymour Cray博士最早的 “工作单位”)。

  当时国内也有国防科大中国(巨型)计算机之父慈云桂教授主持开发的“银河-I”亿次超级向量计算机,在当年无任何“外援”、所有“零部件”和软件都得自力更生的情况下能够研发出来,的确是了不起的成就。后来的银河Ⅱ号以及90年代初的曙光一号SMP计算机等等,自主创新的程度都很高,那时虽然也是学国外技术,但是“真的学”, 尽管总是比国外落后几年, 但真是我们自己研究出来的。

  说到专用计算机,就不得不提美国Cray Research公司和陈世卿博士(Steve Chen)。1979年陈博士加入了垄断世界超级电脑市场的Cray公司,他用了3年时间于1983年开发出世界上第一台双CPU的并行向量式(Parallel Vectors)超级计算机(Cray X-MP/2),把并行理念成功应用到向量计算机,由此奠定了世界上并行向量式超级计算机系统架构的基础。1991年经美国总统尼克松的国家首席科学顾问提名,陈世卿院士被选为美国国家工程院院士。1988年3月美国《时代》杂志将他作为封面故事人物。2002年陈博士回到中国,于2005年开发出第四代速度为4万亿次的超级刀片计算机,在当时Dongarra教授公布的世界超级计算机500强中排名第100位。笔者认为,如果陈博士能够提前15年回到中国,他可能是又一个钱学森似的人物。

  上个世纪90年代中后期,在著名的摩尔定律的推动下,基于通用CPU的工作站(Workstation)和PC的计算能力迅速提高,一台工作站的计算能力已经超过了早年的“超级计算机”。由于通用CPU在大规模生产上的成本优势,基于向量计算的超级计算技术基本上已走到尽头,Cray等几家基于SIMD、PVP、VPP技术的超级计算机生产厂商纷纷倒闭或改变技术路线,日本NEC、Fujitsu等公司也淡出这个行业。

  基于通用CPU的超级计算机成为主流后,笔者认为,超级计算机系统技术含金量就不如以前了。由于市场的不断开放,很多“零部件”和核心软件都可以直接买到或“拿来”(开源的)。 结果是, 我们推出的超级计算机“整机系统”和国外的差距的确是越来越小了,性能指标可以排到世界前列,甚至第一,但核心部件和软件与国际技术水平差距并没有缩小。这也许不是我们科研技术人员的错,而是全球商业化规律造成的社会化“分工”使然。

  在“牛计算”(集群计算)出现之前,还出现了一小波基于SMP(Symmetric MultiProcessor)、NUMA(Non Uniform Memory Access Achitecture)、MPP等多处理技术和通用CPU的专用型超级计算机系统。这些公司同样也是受到了摩尔定律的冲击赚不到钱而退出市场或倒闭的。(文/周洪波)

收藏 推荐 打印 | 录入:刘鹏 | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款