现在几乎所有人都在讨论云计算,云计算涉及的面很广,其中一项关键技术,就是如何把一个非常大的计算问题,自动分解到许多计算能力不是很强大的计算机上共同完成。举个具体的例子,在2000年以前,大规模的科学计算和统计活动程序(例如,天气预报、股票交易、银行业务等)还只能在大型机上运行,因为这计算的内容数据太大、太多,对计算机的运算速度和运算资源要求很高,一般的PC机根本无法满足要求。这些运算是由IBM、SUN、HP、DEC公司生产的大型机、中型机等来完成,国家的政府、银行、科研单位都大量进口此类高端计算机。这些设备平均价格都是几十到上百万美元,相当于普通PC机的几百倍价格,提供的运算能力是普通计算机的10-100倍。这是因为以往计算能力的提升只能依靠处理器性能的提升或者很多处理器并行工作来实现,这都对半导体技术有很高依赖,尽管半导体技术不断发展,依然无法满足运算能力的需求增长。因此越是复杂的计算越是对大型机的要求越高,自然价格也就越高,往往性能提高20-30%,价格则增长了一倍。看似没有性价比,但是在一些关键的行业,哪怕节约10%的计算时间,付出一倍的代价都是值得的。所以,这些大型高速计算机的昂贵价格,同时也限制了大规模的计算活动,一般的单位常常负担不起这些设备。
关键的变化还是来临了,Google给出了一个叫MapReduce的工具程序,他的主要工作原理是可以将大型的计算任务自动拆分成很多个细小的计算任务,使用普通PC服务器就可以完成这些小计算任务。然后,再将这些这些小的计算结果重新汇总起来,最终可以在多台普通PC硬件平台机上实现以往大型计算机才能完成的计算任务。等于说,Google将以前只能用大型机完成的计算任务通过多台PC机组成的计算集群来完成。这个软件工具实现的功能是突破性的,它用软件的算法,解决了硬件计算能力的瓶颈:首先成本更有优势,更重要的是不再受限于大型机单机硬件能力的提升,可以简单通过用增加PC数量方式成倍提升运算能力。MapReduce算法,就称为各个击破算法,它的原理如此简单:复杂大问题分解成小问题,之后答案再合并成完整结果。
从此以后,人们可以用云计算平台下成千上万台普通的PC机来堆积计算能力,替代以前只能用大型计算机完成的计算功能。计算能力不够了,数量来堆,通过云平台增加海量的PC来替代了以前只能是大型机来完成的任务,解决了大型机硬件对大规模计算需求的束缚。价格高高在上的专业大型机,被几十台上百台廉价的PC替代。云计算公司Google、亚马逊通过这些新技术的应用,从大量的竞争对手中脱颖而出,成为各自领域的佼佼者。
一项新技术的诞生,改变了整个领域的生态环境,MapReduce工具同时敲响了大型机厂家的丧钟:IBM大型机部门一再萎缩,只保留了专业领域市场,SUN将自己卖给了Oracle,HP的大型机部门也并入其他部门。技术进步的力量是决定性的,代表旧技术的公司(SUN、DEC)被淘汰,新技术的代表公司(Google、亚马逊)成了宠儿,周而复始,每个时代都有自己的弄潮儿。。。