从“牛计算”到云计算
- 来源:计算机世界 smarty:if $article.tag?>
- 关键字: smarty:/if?>
- 发布时间:2010-01-28 11:19
从集群计算(即“牛”计算)到云计算的转变,是大众化商业应用,尤其是互联网商业化和搜索技术推动的结果,正是这些诸如此类的商业应用使得主要服务于科学计算的“计算中心”演变为主要服务于互联网、广义的SaaS、搜索技术等的“数据中心”。
云计算是近年来风靡IT业界的一个词,无论它是否真能带来发展机遇,但它已经成为一种潮流,如果你不入流,不能和大家说同一种语言,也就“OUT”了。好比股市的一波大行情来临,尽管可能会有泡沫,还是会有很多人会参与其中,因为如果不参与,就可能失去赚钱的机会(对于云计算,可能会失去得到政府资助的机会),尤其在这波行情还没结束的时候。就连当初并太认同云计算的OracleCEO拉里·埃里森对此也无能为力,只能也在Oracle贴上“云计算”的标签。
云计算是“皇帝的新装”,这一点不少了解其来龙去脉的人是认同的,但这一轮新的热潮是否蕴含了新的发展机遇?对此问题也是仁者见仁,智者见智。笔者并不反对云计算,作为业界较早参与国内外与云计算相关的一些工作的“老人”,笔者可能正好见证了和云计算相关的超级计算技术的发展,觉得自己对云计算,特别是技术发展方面的来龙去脉有一些了解,愿意与大家分享对此的理解。
“牛计算”是“根”
笔者从上个世纪80年代就开始在国内参与并行计算的研究,参与了李三立院士当年的Transputer合作项目,用于构建并行图像处理的Pyramid系统架构。当时还有美国CMU大学HT孔教授提出的Systolic阵列计算机的理念等等。应该说,那时的理念一点儿也不比现在的落后,所谓Transputer,就是“Transistor+Computer”,就是说以后做并行(云)计算大系统,把Transputer当积木(Lego)搭起来就行了。
笔者后来去国外学习,博士论文做的是关于计算问题的并行分解技术和算法。毕业后在1993年有幸加入了美国OakRidge国家实验室JackDongarra教授(他每年6月负责发布世界超级计算Top500强名单)的PVM/MPI研发团队,作为博士后研究员做“牛”计算(COW,也就是ClusterofWorkstations)。当时美国的几个国家实验室都在做并行系统的研究和开发,其中包括Argonne实验室的IanFoster教授,有人称他为云计算之父,因为云计算的前身网格计算的概念是他提出来的。
云计算从技术发展来说源于“牛”计算,后来在此基础上出现了Globus、Beowulf(HarnessthepowerofCOW)集群计算、网格计算等等。从“牛”计算到云计算的发展和转变,是计算机的大众化商业应用(尤其是互联网商业化和搜索技术的发展)导致的转变,主要标志就是从主要服务于科学计算的“计算中心”到主要服务于互联网、广义的SaaS、搜索技术等的“数据中心”的转变。
笔者后来于1995年加入IBM公司的SP(ScalablePowerParallel)并行系统部门,参与了当时世界上最快的超级计算机ASCI-BluePacific的研发工作,负责JobScheduler(作业调度)系统(代表IBMLoadLeveler团队)的研发。再后来在硅谷一个初创公司,带领一个团队成功开发了一个基于“牛”计算技术和JavaWeb前端的人类基因组计算系统,作为当时世界首例,全面成功“注释”(Annotation)了当时所有的人类基因组,美国CNN和旧金山纪事报等10多个世界主要媒体都作了报道。按现在的话说,这是一个早期的基于云计算后台技术的生物计算SaaS门户。
当时做的PVM/MPI(ParallelVirtualMachine/MessagePassingLibrary)等系统目前仍然是国内外超级计算机的核心基础软件之一,包括国内著名的曙光、深腾(联想)、和最近的天河一号(国防科大)超级计算机,都用到PVM/MPI。另外,和IBMLoadleveler类似的非商用系统,如PBS、Condor等(免费)作业调度系统,也是国内外超级并行计算系统的“标配”软件之一。
应该说,正是COW(ClusterOfWorkstation)计算系统(一种实用的分布式计算系统,也叫POP,PileOfPCs)的出现改变了超级计算的格局,它使超级计算的核心技术由原来的以硬件和体系架构为主变成了以软件为主。所以,笔者更愿意称COW为“牛”计算,是因为这个理念确实很“牛”。
最早的“牛”计算核心软件平台就是PVM,它是由美国Emory大学的印度裔教授VaidySunderam提出来的,但落地在OakRidge国家实验室,本人也有幸成为OakRidgePVM开发组较早的成员之一。由于PVM只是一个事实标准,后来出现了MPI标准,于是有了很多MPI的实现系统,但基本上都是基于PVM系统改头换面做成的。
“牛”计算也属于MPP(MassivelyParallelProcessing),只是它是一种松耦合的MPP,相对于IBM的SP(ScalablePowerParallel)、国内的通用型曙光超级计算机等那样的紧耦合MPP,主要区别就是连接计算节点(通用计算机主机)之间的网络(或叫HPS,HighPerformanceSwitch)不一样。
早年IBM的SP并行MPP机器的Switch都是自己做的,例如给LLNL实验室做的那台ASCI-BluePacific,但后来的SwicthIBM自己不做了,之后的SP机器都是用普通的RS6000加上OEM的HPS搭建而成的。Switch好比网络路由器,但是由于对传输速率和延迟(Latency)要求较高,不通用,一般也是一些专业的小公司在做,例如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(HighPerformanceFORTRAN)并行编译语言系统、openMP、LinPACK标准软件包等等,就可以组装成一台超级计算机了。对于专业人士和厂商,难度可能和做一个大型的系统集成项目差不多,主要技术难点在于整体系统的配置、组装联调和散热等。
简单地理解,一台超级计算机,如果节点数量多,每个节点的计算能力都很强,也就是说资金投入足够大,基本上就可以在超级计算机的Top500名单中占据一席之地,因为做法都是公开的,验证的应用(主要是验证系统对LinPack软件包等的Peak性能)也是公开的。而一台超级计算机能否发挥作用,主要还是要看使用它的应用程序能否有效的被分解,分解后能否和系统充分匹配,利用好系统的资源。
早期的COW系统中的计算节点主要都是闲置的计算资源。SETI@HOME是牛计算的典型应用之一,这是一项利用全球互联网上的闲置计算资源共同搜寻地外文明的科学实验计划,超级计算由此也走入千家万户。超级计算这个词在业内逐渐被HPC(HighPerformanceComputing,高性能计算)、HTC(High-throughputComputing,高吞吐计算)等词所取代。
HPC计算的主要应用是科学计算,包括核爆炸的模拟(NuclearStockpile)、采掘业的模拟计算、气象预报计算等等。随着互联网的发展和普及,HPC计算技术越来越多地被用到了海量数据的存储和查询的应用中,例如Google、Amazon、Ebay、Salesforce.com,包括近期出现的FaceBook、Twitter、LinkedIn等社区网站以及国内的新浪、Alibaba、盛大等,这些公司都需要建立庞大的“牛计算”系统,用的机器多半都是常规的LinuxPC,组成叫ServerFarms(服务器“农场”,和“牛”也相关)的大系统。
在这样的系统中,计算能力不再是最关键的因素,HPS也不是必需的,高效的海量存储和处理能力成为核心。因此HPC、超级计算这样的词也逐渐让位给网格计算(GridComputing)、云计算这样的更贴近于大众化语言的新词。
云计算的核心是支撑“XaaS”
云计算是并行计算、分布式计算(牛计算)和网格计算的发展,或者说是这些计算机科学概念的商业实现。云计算代表了HPC从科学计算到大众化商业应用的变迁,使以前最烧钱和不赚钱的超级计算产业变成了最赚钱和省钱(充分利用现成的CPUPower)的生意。云计算使以前的“计算中心”边缘化,“数据中心”成为主流。
云计算也是虚拟化、效用计算(UtilityComputing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)、HaaS(硬件作为服务)等XaaS(一切皆服务)概念和技术混合演进的结果。笔者认为云计算的卖点主要有两个:一是节省硬件投资;二是SaaS。云计算和SaaS成为一对“黄金搭档”,云计算托起SaaS,SaaS保持用户对云计算的粘性。这里说的SaaS是广义的SaaS,即任何通过浏览器就能实现的软件服务都属于SaaS,而不只是Salesforce所说的多租户(Multi-Tenants)概念下的狭义SaaS。
当年的ASP后台其实就是云计算,ASP厂商全军覆没根本原因就是它们没有直接做XaaS应用,没有把握住用户的粘性。所以,前车之鉴,单靠推广IaaS/HaaS的云计算,作为一种商业模式,也多半是要失败的。
Amazon使用弹性计算云(EC2)和简单存储服务(S3)为企业提供计算和存储服务。收费的服务项目包括存储服务器、带宽、CPU资源以及月租费。Amazon把云计算做成一个大生意花了不到两年时间。Amazon上的注册开发人员已达44万人,还有为数众多的企业级用户。有第三方统计机构提供的数据显示,Amazon与云计算相关的业务收入已达1亿美元。云计算是Amazon增长最快的业务之一。在笔者看来,Amazon成功的关键在于它的主营业务保持了用户的粘性,1亿美元的云计算业务相对于他的电子商务主营业务其实可以忽略不计,属于现有资源的扩展利用,是锦上添花。
Google当数最大的云计算的使用者,其搜索引擎就建立在分布在200多个地点、超过100万台服务器的支撑之上。Google地球、地图、Gmail、Docs等也同样使用了这些基础设施。采用GoogleDocs之类的应用,用户数据会保存在互联网上的某个位置,可以通过任何一个与互联网相连的系统十分便利地访问这些数据。目前,Google已经允许第三方在Google的云计算中通过GoogleAppEngine运行大型并行应用程序。所有这些应用的核心理念还是SaaS。
SaaS是对微软帝国最大的威胁,和Oracle一样,微软也可能是“被逼无奈”才大谈云计算。但是,此“云计算”非彼“云计算”,各有目的。在笔者看来,微软推出的WindowsAzure云计算“操作系统”其实和云计算理念并不一致。因为云计算的目标之一就是要消除Windows这样的“操作系统”的存在,而目前Windows是市场份额最高的客户端。
在我国,云计算发展也非常迅猛。IBM在中国建起了数个云计算中心,阿里软件也计划在南京建立国内首个“电子商务云计算中心”,中国移动也推出了BigCloud(大云)。
云计算在我国发展非常迅猛。IBM在中国无锡太湖新城科教产业园建立的中国第一个云计算中心去年投入运营,去年IBM在北京的中国创新中心成立了第二家中国的云计算中心IBM大中华区云计算中心。2008年底,广东电子工业研究院与东莞松山湖科技产业园管委会签约,将在东莞松山湖投资2亿元建立云计算平台。阿里巴巴集团旗下子公司阿里软件与江苏省南京市政府正式签订协议,计划在南京建立国内首个“电子商务云计算中心”,首期投资额将达上亿元人民币。中国移动也推出了BigCloud(大云)。
这些云计算中心(或者计划)中,阿里巴巴做云计算是合乎逻辑的,因为他有很大的SaaS业务资源;中国移动有自己的“内部需求”,已有很大规模的数据中心,引入云计算技术充分发挥现有资源的作用,也是合乎逻辑的。其他的情况下建立的云计算中心,可能也就是原来的“计算中心”的升级版,业务模式似乎不清楚。
在笔者看来,国际几大巨头中IBM的云计算路数有些不同,因为IBM没有任何SaaS运营业务。所以,IBM推云计算的意图多半也是“项庄舞剑,意在沛公”,着眼点还是服务器和软件。
云计算的服务对象是数据中心,从技术层面来说,以前HPC系统中常用的软件系统,如PVM/MPI/HPF等都已经派不上大用场了(不过Amazon的CloudMaster基本上就是原来MPP系统中“作业调度”系统重新包装的结果),于是出现了许多新的算法和软件系统。例如Google推出的MapReduce、GFS、Bigtable以及MapReduce的开源实现Hadoop等,主要的东西还是出自Google的,其他厂商大都在效仿。
超级计算机的演变过程
最早的超级计算机始于哪个年代这里不去赘述,这里主要想说说笔者亲身经历过的超级计算机的发展。个人的经历毕竟有限,但本人可能正好见证了和云计算相关的超级计算技术的发展。
上个世纪70和80年代,国内各大学和研究所计算中心的主要用机是IBM的大机(Mainframe)、DEC的VAX系统等,当时超级计算(SuperComputer)这个词还没正式提出来。从90年代开始,美国建立了很多超级计算中心,每年召开超级和高性能计算(SC’09是最近的)大会,规模都很大,参与的厂家也很多,有点像现在的CES。进入20世纪80年代中后期和90年代初期的超级计算中心主要用机是美国Cray和日本NEC、Fujitsu等公司生产的专用超级计算机,主要以向量计算机为主。CDCSTAR-100是首先使用向量处理器(Vector Processor)的计算机(是被誉为超级计算机之父Seymour Cray博士最早的“工作单位”)。
当时国内也有国防科大中国(巨型)计算机之父慈云桂教授主持开发的“银河-I”亿次超级向量计算机,在当年无任何“外援”、所有“零部件”和软件都得自力更生的情况下能够研发出来,的确是了不起的成就。后来的银河II号以及90年代初的曙光一号SMP计算机等等,自主创新的程度都很高,那时虽然也是学国外技术,但是“真的学”,尽管总是比国外落后几年,但真是我们自己做出来的。
说到专用计算机,就不得不提美国CrayResearch公司和陈世卿博士(Steve Chen)。1979年陈博士加入了垄断世界超级电脑市场的Cray公司,他用了3年时间于1983年开发出世界上第一台双CPU的并行向量式(Parallel Vectors)超级计算机(CrayX-MP/2),把并行理念成功应用到向量计算机,由此奠定了世界上并行向量式超级计算机系统架构的基础。1991年经美国总统尼克松的国家首席科学顾问提名,陈世卿院士被选为美国国家工程院院士。1988年3月美国《时代》杂志将他作为封面故事人物。2002年陈博士回到中国,于2005年开发出第四代速度为4万亿次的超级刀片计算机,在当时Dongarra教授公布的世界超级计算机500强中排名第100位。笔者认为,如果陈博士能够提前15年回到中国,他可能是又一个钱学森似的人物。
上个世纪90年代中后期,在著名的Moore定律的推动下,基于通用CPU的工作站(Workstation)和PC的计算能力迅速提高,一台工作站的计算能力已经超过了早年的“超级计算机”。由于通用CPU在大规模生产上的成本优势,基于向量计算的超级计算技术基本上已近走到尽头,Cray等几家基于SIMD、PVP、VPP技术的超级计算机生产厂商纷纷倒闭或改变技术路线,日本NEC、Fujitsu等公司也淡出这个行业。
基于通用CPU的超级计算机成为主流后,笔者认为,超级计算机系统技术含金量就不如以前了。由于市场的不断开放,很多“零部件”和核心软件都可以直接买到或“拿来”(开源的)。结果是,我们推出的超级计算机“整机系统”和国外的差距的确是越来越小了,性能指标可以排到世界前列,甚至第一,但核心部件和软件与国际技术水平并没有缩小了。这不是我们科研技术人员的错,而是全球商业化规律造成的社会化“分工”使然。
在“牛”计算(集群计算)出现之前,还出现了一小波基于SMP(Symmetric MultiProcessor)、NUMA(NonUniformMemoryAccessAchitecture)、MPP等多处理技术和通用CPU的专用型超级计算机系统,如IntelParagon、SUN公司推出的CM(ConnectionMachine)、nCube、KSR、HP的Convex等。这些公司同样也是受到了摩尔定律的冲击赚不到钱而退出市场或倒闭。
云计算的社会效益和商业模式?
有些人视云计算为第三次IT行业变革时代的开始,很多专家也预测云计算在中国将会有一个广阔前景。在国外人们主要谈商业模式,而在国内大家要考虑社会效益。要想使云计算在中国有一个更美好的未来,两点很关键:政府需要看到社会效益,商家需要看到能赚钱的商业模式。前者可以推动后者,但不能保证后者的成功。
关于社会效益,笔者在前面提到的云计算的两个卖点中的第一点:节省硬件投资,充分利用已投入的资源。这一点显然是符合中国目前“建设节约型社会,发展循环经济”的大政方针的,社会效益不言自明。云计算可以缓解目前国内普遍存在的“低水平重复建设”的老大难问题。
但是,目前云计算的模式对解决这个问题没有清晰的可操作性。由于受到相关法规,财政预算制度和国民文化习惯的影响,云计算的发展有三大障碍:第一,多数中国企业对从外部采购数据存储服务信心不足,担心会失去对数据的控制。宽带接入速度还太低,无法保障优质的云服务;第二,财政预算制度不支持云计算和SaaS服务所提倡的按需付款的模式,往往上级领导批了一笔钱(尤其在政府部门),都是按项目模式,专款专用,限期必须花完,服务模式行不通;第三,国民文化习惯也不支持云计算/SaaS的“租用”模式,中国人喜欢“拥有”,而且还要是新的。如果上述问题处理不好,产业链是很难形成的。
关于商业模式,目前中国还没有GoogleDocs、AmazonEC2、Salesforce等这样一批在XaaS业务方面有足够粘性作为基础开展云计算业务的企业,很多企业尤其是大企业的云计算计划往往是其研发部门提出来的,而不是真实的公司决策层提出的云计算战略规划。另外,目前国内有许多企业参与追捧云计算,其目的之一也是想借机得到政府的支持。
笔者认为,阿里软件可能是中国少有的几家有基础做SaaS和云计算的企业之一,另外也有几家以前做ASP和SaaS的公司,想通过云计算(和SaaS)的理念重新包装自己,使业务上一个新台阶。在金融领域,云计算可能是率先能够得到成功应用的,例如在银行的柜台和ATM机,云终端(也就是瘦PC、NetworkPC)的使用比较顺理成章,云终端比用PC更安全(安全性是云计算的主要弊端),也可降低成本。当然没想明白的也有不少,从很多公司的业务模式定位上就能看出来,它们以为真的找到了新的发展机遇,其实有很多业务模式根本不成立。
笔者认为,云计算肯定是一个很好的业务模式,尤其是他的成功实施会带来很好的社会效益,社会效益的提升必将带来云计算产业的繁荣和各种云计算商业模式的成功,虽然困难不少,但这条路还需走下去,我们祝愿云计算在社会效益和商业模式方面都能够在中国取得真正的成功。
作者简介:
周洪波1993年获瑞士苏黎世大学计算机科学博士学位,现任北京同方软件股份有限公司常务副总经理兼CTO,中国中间件协会副理事长,北京交通大学等校兼职教授等。曾任美国橡树岭国家实验室研究员和美国IBM、BEA等公司高级技术和管理职务。
……
云计算是近年来风靡IT业界的一个词,无论它是否真能带来发展机遇,但它已经成为一种潮流,如果你不入流,不能和大家说同一种语言,也就“OUT”了。好比股市的一波大行情来临,尽管可能会有泡沫,还是会有很多人会参与其中,因为如果不参与,就可能失去赚钱的机会(对于云计算,可能会失去得到政府资助的机会),尤其在这波行情还没结束的时候。就连当初并太认同云计算的OracleCEO拉里·埃里森对此也无能为力,只能也在Oracle贴上“云计算”的标签。
云计算是“皇帝的新装”,这一点不少了解其来龙去脉的人是认同的,但这一轮新的热潮是否蕴含了新的发展机遇?对此问题也是仁者见仁,智者见智。笔者并不反对云计算,作为业界较早参与国内外与云计算相关的一些工作的“老人”,笔者可能正好见证了和云计算相关的超级计算技术的发展,觉得自己对云计算,特别是技术发展方面的来龙去脉有一些了解,愿意与大家分享对此的理解。
“牛计算”是“根”
笔者从上个世纪80年代就开始在国内参与并行计算的研究,参与了李三立院士当年的Transputer合作项目,用于构建并行图像处理的Pyramid系统架构。当时还有美国CMU大学HT孔教授提出的Systolic阵列计算机的理念等等。应该说,那时的理念一点儿也不比现在的落后,所谓Transputer,就是“Transistor+Computer”,就是说以后做并行(云)计算大系统,把Transputer当积木(Lego)搭起来就行了。
笔者后来去国外学习,博士论文做的是关于计算问题的并行分解技术和算法。毕业后在1993年有幸加入了美国OakRidge国家实验室JackDongarra教授(他每年6月负责发布世界超级计算Top500强名单)的PVM/MPI研发团队,作为博士后研究员做“牛”计算(COW,也就是ClusterofWorkstations)。当时美国的几个国家实验室都在做并行系统的研究和开发,其中包括Argonne实验室的IanFoster教授,有人称他为云计算之父,因为云计算的前身网格计算的概念是他提出来的。
云计算从技术发展来说源于“牛”计算,后来在此基础上出现了Globus、Beowulf(HarnessthepowerofCOW)集群计算、网格计算等等。从“牛”计算到云计算的发展和转变,是计算机的大众化商业应用(尤其是互联网商业化和搜索技术的发展)导致的转变,主要标志就是从主要服务于科学计算的“计算中心”到主要服务于互联网、广义的SaaS、搜索技术等的“数据中心”的转变。
笔者后来于1995年加入IBM公司的SP(ScalablePowerParallel)并行系统部门,参与了当时世界上最快的超级计算机ASCI-BluePacific的研发工作,负责JobScheduler(作业调度)系统(代表IBMLoadLeveler团队)的研发。再后来在硅谷一个初创公司,带领一个团队成功开发了一个基于“牛”计算技术和JavaWeb前端的人类基因组计算系统,作为当时世界首例,全面成功“注释”(Annotation)了当时所有的人类基因组,美国CNN和旧金山纪事报等10多个世界主要媒体都作了报道。按现在的话说,这是一个早期的基于云计算后台技术的生物计算SaaS门户。
当时做的PVM/MPI(ParallelVirtualMachine/MessagePassingLibrary)等系统目前仍然是国内外超级计算机的核心基础软件之一,包括国内著名的曙光、深腾(联想)、和最近的天河一号(国防科大)超级计算机,都用到PVM/MPI。另外,和IBMLoadleveler类似的非商用系统,如PBS、Condor等(免费)作业调度系统,也是国内外超级并行计算系统的“标配”软件之一。
应该说,正是COW(ClusterOfWorkstation)计算系统(一种实用的分布式计算系统,也叫POP,PileOfPCs)的出现改变了超级计算的格局,它使超级计算的核心技术由原来的以硬件和体系架构为主变成了以软件为主。所以,笔者更愿意称COW为“牛”计算,是因为这个理念确实很“牛”。
最早的“牛”计算核心软件平台就是PVM,它是由美国Emory大学的印度裔教授VaidySunderam提出来的,但落地在OakRidge国家实验室,本人也有幸成为OakRidgePVM开发组较早的成员之一。由于PVM只是一个事实标准,后来出现了MPI标准,于是有了很多MPI的实现系统,但基本上都是基于PVM系统改头换面做成的。
“牛”计算也属于MPP(MassivelyParallelProcessing),只是它是一种松耦合的MPP,相对于IBM的SP(ScalablePowerParallel)、国内的通用型曙光超级计算机等那样的紧耦合MPP,主要区别就是连接计算节点(通用计算机主机)之间的网络(或叫HPS,HighPerformanceSwitch)不一样。
早年IBM的SP并行MPP机器的Switch都是自己做的,例如给LLNL实验室做的那台ASCI-BluePacific,但后来的SwicthIBM自己不做了,之后的SP机器都是用普通的RS6000加上OEM的HPS搭建而成的。Switch好比网络路由器,但是由于对传输速率和延迟(Latency)要求较高,不通用,一般也是一些专业的小公司在做,例如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(HighPerformanceFORTRAN)并行编译语言系统、openMP、LinPACK标准软件包等等,就可以组装成一台超级计算机了。对于专业人士和厂商,难度可能和做一个大型的系统集成项目差不多,主要技术难点在于整体系统的配置、组装联调和散热等。
简单地理解,一台超级计算机,如果节点数量多,每个节点的计算能力都很强,也就是说资金投入足够大,基本上就可以在超级计算机的Top500名单中占据一席之地,因为做法都是公开的,验证的应用(主要是验证系统对LinPack软件包等的Peak性能)也是公开的。而一台超级计算机能否发挥作用,主要还是要看使用它的应用程序能否有效的被分解,分解后能否和系统充分匹配,利用好系统的资源。
早期的COW系统中的计算节点主要都是闲置的计算资源。SETI@HOME是牛计算的典型应用之一,这是一项利用全球互联网上的闲置计算资源共同搜寻地外文明的科学实验计划,超级计算由此也走入千家万户。超级计算这个词在业内逐渐被HPC(HighPerformanceComputing,高性能计算)、HTC(High-throughputComputing,高吞吐计算)等词所取代。
HPC计算的主要应用是科学计算,包括核爆炸的模拟(NuclearStockpile)、采掘业的模拟计算、气象预报计算等等。随着互联网的发展和普及,HPC计算技术越来越多地被用到了海量数据的存储和查询的应用中,例如Google、Amazon、Ebay、Salesforce.com,包括近期出现的FaceBook、Twitter、LinkedIn等社区网站以及国内的新浪、Alibaba、盛大等,这些公司都需要建立庞大的“牛计算”系统,用的机器多半都是常规的LinuxPC,组成叫ServerFarms(服务器“农场”,和“牛”也相关)的大系统。
在这样的系统中,计算能力不再是最关键的因素,HPS也不是必需的,高效的海量存储和处理能力成为核心。因此HPC、超级计算这样的词也逐渐让位给网格计算(GridComputing)、云计算这样的更贴近于大众化语言的新词。
云计算的核心是支撑“XaaS”
云计算是并行计算、分布式计算(牛计算)和网格计算的发展,或者说是这些计算机科学概念的商业实现。云计算代表了HPC从科学计算到大众化商业应用的变迁,使以前最烧钱和不赚钱的超级计算产业变成了最赚钱和省钱(充分利用现成的CPUPower)的生意。云计算使以前的“计算中心”边缘化,“数据中心”成为主流。
云计算也是虚拟化、效用计算(UtilityComputing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)、HaaS(硬件作为服务)等XaaS(一切皆服务)概念和技术混合演进的结果。笔者认为云计算的卖点主要有两个:一是节省硬件投资;二是SaaS。云计算和SaaS成为一对“黄金搭档”,云计算托起SaaS,SaaS保持用户对云计算的粘性。这里说的SaaS是广义的SaaS,即任何通过浏览器就能实现的软件服务都属于SaaS,而不只是Salesforce所说的多租户(Multi-Tenants)概念下的狭义SaaS。
当年的ASP后台其实就是云计算,ASP厂商全军覆没根本原因就是它们没有直接做XaaS应用,没有把握住用户的粘性。所以,前车之鉴,单靠推广IaaS/HaaS的云计算,作为一种商业模式,也多半是要失败的。
Amazon使用弹性计算云(EC2)和简单存储服务(S3)为企业提供计算和存储服务。收费的服务项目包括存储服务器、带宽、CPU资源以及月租费。Amazon把云计算做成一个大生意花了不到两年时间。Amazon上的注册开发人员已达44万人,还有为数众多的企业级用户。有第三方统计机构提供的数据显示,Amazon与云计算相关的业务收入已达1亿美元。云计算是Amazon增长最快的业务之一。在笔者看来,Amazon成功的关键在于它的主营业务保持了用户的粘性,1亿美元的云计算业务相对于他的电子商务主营业务其实可以忽略不计,属于现有资源的扩展利用,是锦上添花。
Google当数最大的云计算的使用者,其搜索引擎就建立在分布在200多个地点、超过100万台服务器的支撑之上。Google地球、地图、Gmail、Docs等也同样使用了这些基础设施。采用GoogleDocs之类的应用,用户数据会保存在互联网上的某个位置,可以通过任何一个与互联网相连的系统十分便利地访问这些数据。目前,Google已经允许第三方在Google的云计算中通过GoogleAppEngine运行大型并行应用程序。所有这些应用的核心理念还是SaaS。
SaaS是对微软帝国最大的威胁,和Oracle一样,微软也可能是“被逼无奈”才大谈云计算。但是,此“云计算”非彼“云计算”,各有目的。在笔者看来,微软推出的WindowsAzure云计算“操作系统”其实和云计算理念并不一致。因为云计算的目标之一就是要消除Windows这样的“操作系统”的存在,而目前Windows是市场份额最高的客户端。
在我国,云计算发展也非常迅猛。IBM在中国建起了数个云计算中心,阿里软件也计划在南京建立国内首个“电子商务云计算中心”,中国移动也推出了BigCloud(大云)。
云计算在我国发展非常迅猛。IBM在中国无锡太湖新城科教产业园建立的中国第一个云计算中心去年投入运营,去年IBM在北京的中国创新中心成立了第二家中国的云计算中心IBM大中华区云计算中心。2008年底,广东电子工业研究院与东莞松山湖科技产业园管委会签约,将在东莞松山湖投资2亿元建立云计算平台。阿里巴巴集团旗下子公司阿里软件与江苏省南京市政府正式签订协议,计划在南京建立国内首个“电子商务云计算中心”,首期投资额将达上亿元人民币。中国移动也推出了BigCloud(大云)。
这些云计算中心(或者计划)中,阿里巴巴做云计算是合乎逻辑的,因为他有很大的SaaS业务资源;中国移动有自己的“内部需求”,已有很大规模的数据中心,引入云计算技术充分发挥现有资源的作用,也是合乎逻辑的。其他的情况下建立的云计算中心,可能也就是原来的“计算中心”的升级版,业务模式似乎不清楚。
在笔者看来,国际几大巨头中IBM的云计算路数有些不同,因为IBM没有任何SaaS运营业务。所以,IBM推云计算的意图多半也是“项庄舞剑,意在沛公”,着眼点还是服务器和软件。
云计算的服务对象是数据中心,从技术层面来说,以前HPC系统中常用的软件系统,如PVM/MPI/HPF等都已经派不上大用场了(不过Amazon的CloudMaster基本上就是原来MPP系统中“作业调度”系统重新包装的结果),于是出现了许多新的算法和软件系统。例如Google推出的MapReduce、GFS、Bigtable以及MapReduce的开源实现Hadoop等,主要的东西还是出自Google的,其他厂商大都在效仿。
超级计算机的演变过程
最早的超级计算机始于哪个年代这里不去赘述,这里主要想说说笔者亲身经历过的超级计算机的发展。个人的经历毕竟有限,但本人可能正好见证了和云计算相关的超级计算技术的发展。
上个世纪70和80年代,国内各大学和研究所计算中心的主要用机是IBM的大机(Mainframe)、DEC的VAX系统等,当时超级计算(SuperComputer)这个词还没正式提出来。从90年代开始,美国建立了很多超级计算中心,每年召开超级和高性能计算(SC’09是最近的)大会,规模都很大,参与的厂家也很多,有点像现在的CES。进入20世纪80年代中后期和90年代初期的超级计算中心主要用机是美国Cray和日本NEC、Fujitsu等公司生产的专用超级计算机,主要以向量计算机为主。CDCSTAR-100是首先使用向量处理器(Vector Processor)的计算机(是被誉为超级计算机之父Seymour Cray博士最早的“工作单位”)。
当时国内也有国防科大中国(巨型)计算机之父慈云桂教授主持开发的“银河-I”亿次超级向量计算机,在当年无任何“外援”、所有“零部件”和软件都得自力更生的情况下能够研发出来,的确是了不起的成就。后来的银河II号以及90年代初的曙光一号SMP计算机等等,自主创新的程度都很高,那时虽然也是学国外技术,但是“真的学”,尽管总是比国外落后几年,但真是我们自己做出来的。
说到专用计算机,就不得不提美国CrayResearch公司和陈世卿博士(Steve Chen)。1979年陈博士加入了垄断世界超级电脑市场的Cray公司,他用了3年时间于1983年开发出世界上第一台双CPU的并行向量式(Parallel Vectors)超级计算机(CrayX-MP/2),把并行理念成功应用到向量计算机,由此奠定了世界上并行向量式超级计算机系统架构的基础。1991年经美国总统尼克松的国家首席科学顾问提名,陈世卿院士被选为美国国家工程院院士。1988年3月美国《时代》杂志将他作为封面故事人物。2002年陈博士回到中国,于2005年开发出第四代速度为4万亿次的超级刀片计算机,在当时Dongarra教授公布的世界超级计算机500强中排名第100位。笔者认为,如果陈博士能够提前15年回到中国,他可能是又一个钱学森似的人物。
上个世纪90年代中后期,在著名的Moore定律的推动下,基于通用CPU的工作站(Workstation)和PC的计算能力迅速提高,一台工作站的计算能力已经超过了早年的“超级计算机”。由于通用CPU在大规模生产上的成本优势,基于向量计算的超级计算技术基本上已近走到尽头,Cray等几家基于SIMD、PVP、VPP技术的超级计算机生产厂商纷纷倒闭或改变技术路线,日本NEC、Fujitsu等公司也淡出这个行业。
基于通用CPU的超级计算机成为主流后,笔者认为,超级计算机系统技术含金量就不如以前了。由于市场的不断开放,很多“零部件”和核心软件都可以直接买到或“拿来”(开源的)。结果是,我们推出的超级计算机“整机系统”和国外的差距的确是越来越小了,性能指标可以排到世界前列,甚至第一,但核心部件和软件与国际技术水平并没有缩小了。这不是我们科研技术人员的错,而是全球商业化规律造成的社会化“分工”使然。
在“牛”计算(集群计算)出现之前,还出现了一小波基于SMP(Symmetric MultiProcessor)、NUMA(NonUniformMemoryAccessAchitecture)、MPP等多处理技术和通用CPU的专用型超级计算机系统,如IntelParagon、SUN公司推出的CM(ConnectionMachine)、nCube、KSR、HP的Convex等。这些公司同样也是受到了摩尔定律的冲击赚不到钱而退出市场或倒闭。
云计算的社会效益和商业模式?
有些人视云计算为第三次IT行业变革时代的开始,很多专家也预测云计算在中国将会有一个广阔前景。在国外人们主要谈商业模式,而在国内大家要考虑社会效益。要想使云计算在中国有一个更美好的未来,两点很关键:政府需要看到社会效益,商家需要看到能赚钱的商业模式。前者可以推动后者,但不能保证后者的成功。
关于社会效益,笔者在前面提到的云计算的两个卖点中的第一点:节省硬件投资,充分利用已投入的资源。这一点显然是符合中国目前“建设节约型社会,发展循环经济”的大政方针的,社会效益不言自明。云计算可以缓解目前国内普遍存在的“低水平重复建设”的老大难问题。
但是,目前云计算的模式对解决这个问题没有清晰的可操作性。由于受到相关法规,财政预算制度和国民文化习惯的影响,云计算的发展有三大障碍:第一,多数中国企业对从外部采购数据存储服务信心不足,担心会失去对数据的控制。宽带接入速度还太低,无法保障优质的云服务;第二,财政预算制度不支持云计算和SaaS服务所提倡的按需付款的模式,往往上级领导批了一笔钱(尤其在政府部门),都是按项目模式,专款专用,限期必须花完,服务模式行不通;第三,国民文化习惯也不支持云计算/SaaS的“租用”模式,中国人喜欢“拥有”,而且还要是新的。如果上述问题处理不好,产业链是很难形成的。
关于商业模式,目前中国还没有GoogleDocs、AmazonEC2、Salesforce等这样一批在XaaS业务方面有足够粘性作为基础开展云计算业务的企业,很多企业尤其是大企业的云计算计划往往是其研发部门提出来的,而不是真实的公司决策层提出的云计算战略规划。另外,目前国内有许多企业参与追捧云计算,其目的之一也是想借机得到政府的支持。
笔者认为,阿里软件可能是中国少有的几家有基础做SaaS和云计算的企业之一,另外也有几家以前做ASP和SaaS的公司,想通过云计算(和SaaS)的理念重新包装自己,使业务上一个新台阶。在金融领域,云计算可能是率先能够得到成功应用的,例如在银行的柜台和ATM机,云终端(也就是瘦PC、NetworkPC)的使用比较顺理成章,云终端比用PC更安全(安全性是云计算的主要弊端),也可降低成本。当然没想明白的也有不少,从很多公司的业务模式定位上就能看出来,它们以为真的找到了新的发展机遇,其实有很多业务模式根本不成立。
笔者认为,云计算肯定是一个很好的业务模式,尤其是他的成功实施会带来很好的社会效益,社会效益的提升必将带来云计算产业的繁荣和各种云计算商业模式的成功,虽然困难不少,但这条路还需走下去,我们祝愿云计算在社会效益和商业模式方面都能够在中国取得真正的成功。
作者简介:
周洪波1993年获瑞士苏黎世大学计算机科学博士学位,现任北京同方软件股份有限公司常务副总经理兼CTO,中国中间件协会副理事长,北京交通大学等校兼职教授等。曾任美国橡树岭国家实验室研究员和美国IBM、BEA等公司高级技术和管理职务。
