A-A+

走进生活的超级计算机

2008年12月07日 资源分享 暂无评论 阅读 1 次

  本文发表于《新探索》杂志2008年8月号,发表时名为《“深蓝”的秘密》。与发表版有些不同。特别感谢《新探索》杂志编辑毅然兄。  

1997年5月,一场国际象棋比赛结束后,国际象棋世界冠军加里·卡斯帕罗夫(Garry Kasparov)坐在房间角落里,用手遮住了脸。这次他的对手是一台IBM公司生产的超级计算机,叫做深蓝(Deep Blue)。这台高大沉默的机器,在六局的比赛中,以3.5:2.5的战绩战胜了这位世界上最优秀的国际象棋大师。

十年过去了,现在的国际象棋大师已经不再尝试挑战计算机。在强大的计算能力和近乎无穷无尽的存储能力面前,象棋大师们的艰苦训练和超人直觉并不能帮助他们取得胜利。

 

即使目前世界上最强大的计算机也没有直觉,不会联想,更不会因为别人对它的看法而心绪不宁。它不能理解三岁孩子都能够理解的话语,一只猫都比它更会察言观色。但是这些沉默的机器擅长的事情是人类绝不可能完成的:它们能够每秒钟计算几十万亿、数百万亿次,能够储存天文数字般的数据。它们工作在我们看不见的地方,却和我们的生活密切相关。

一、离不开的超级计算机

人们一直在追求更快的计算速度和更大的存储空间,以此来应对越来越多的数据处理的工作。当我们把钱存在银行的时候,超级计算机在管理着资金;当我们出门旅行的时候,超级计算机帮我们订机票;当我们想知道明天是晴是雨时,超级计算机为我们提供天气预报;甚至当我们玩游戏时,超级计算机也在繁忙地工作着,让游戏体验更加流畅。我们乘坐的飞机、我们使用的电力和石油,乃至于我们点一下鼠标打开一个网页的时候,都离不开超级计算机的支持。

国际超级计算大会(ISC,International Supercomputing Conference)每年都会发布两次世界上运算速度最快的计算机名单,叫做Top500榜单(Top500 List)。这张榜单从1993年6月开始,到今年6月已经发布了第31次。在最近这次榜单中,用于金融方面的超级计算机已经达到了76台。对于像证券交易这样实时性要求高的系统,必须要求高速处理能力——证券市场瞬息万变,0.01秒的时滞可能导致收益的巨大变化。目前全球证券市场每天成交额在4000亿美元以上,平均每秒就有超过1800万美元的资金换了主人。这种实时性要求高、计算量巨大的计算工作,除了超级计算机以外,没有其他合适人选。Top500榜单上位于中国的超级计算机有一些也在从事资金管理方面的工作,社保机构、保险公司、大型银行等机构都在使用超级计算机。

航空公司也在很早就开始采用计算机来帮助提升效率。1953年,美国航空公司和IBM合作开发了一套机票预订系统,到了今天,几乎所有的旅游代理商都可以访问由这套预订系统发展而来的全球预订系统,帮助旅行者安排旅程。现在地球上平均每天有8万次飞机起降,每天有900万人在1万米的高空飞翔。全球预订系统同样使用超级计算机来管理它庞大的数据库,昼夜不间断地处理全球各地的各种旅行预订交易。

在2005年6月的Top500榜单上,排名150位到153位的四台超级计算机都在中国,分别安置在北京、上海、广州和台北。这几台计算机都是为了支持网络游戏《魔兽世界》的运行而安装的,它们同时与40万名以上的在线玩家连接,每一次攻击、每一个格挡,每一次队友的协助、每一个绚丽的魔法都被转化成数据流,经过超级计算机的运算处理后再传递给玩家的电脑,确保同一个服务器上的每一个玩家眼中看到的都是同一个世界。后来这几台机器分别经过几次升级,性能都有了大幅提升,连续在Top500榜单上停留了两年半之久。但是随着Top500榜单的门槛越来越高,它们最终还是排在了这张榜单之外。

wow

在天气预报领域,超级计算机也有用武之地。当前的中短期天气预报主要依靠动力学预报方法,这种方法利用计算机求解描述大气运动的动力学方程组来预测未来的天气。我们知道,大气运动遵循一定的物理法则,而这些法则可以由一组微分方程来表示。人们可以对这些微分方程求近似解,从而得到大气有某种初始状态开始的所有可能的后续变化。但是这种计算要求几个条件:初始状态必须准确;天气预报模型要符合实际情况;以及具备迅速完成大量运算的能力。最后一个条件,就要超级计算机帮助满足了。我国自行设计生产的银河II型大型机就曾经被使用于天气预报领域,而现在中国气象局用于天气预报的超级计算机曾经在2005年11月的Top500榜单上名列26位。在北京奥运会中,北京气象局也将采用IBM生产的超级计算机来为北京及周边地区提供精确到小时的天气预报。

除了以上的几个简单例子之外,超级计算机在军工、国防、医药、工业方面也都有广泛应用。我们用超级计算机给人类基因重新筛选排序,绘制出人类基因30亿个碱基对的图谱,从而从分子级别上了解人类自身;我们用超级计算机帮助设计飞机和汽车,让它们具备更好的性能;我们用超级计算机分析地层构造,从而探明地下的矿藏;我们用超级计算机处理电信业务,把全球的人们紧密连接在一起。超级计算机已经成为了我们生活不可分割的一部分。

二、超级计算机是如何工作的

要提高运算速度,无非是两条路。一是提高单个处理器的运算速度;二是让多个处理器协同并行工作——我们现在的“双核”、“四核”CPU使用的就是这种策略。在畅销小说作家丹·布朗(Dan Brown)的作品《数字城堡》(Digital Fortress)中,虚构过一台叫做“万能解密机”的超级计算机。“三百万台邮票般大小的中央处理机的最后一台被手工焊接停当,最后一道编制程序宣告结束,陶瓷外壳锻封完毕……这比二十年前国安局最快的电脑要快上一百万倍!”当然,艺术作品中自然会有一些夸张。目前世界上最快的计算机是IBM制造的“走鹃”(Roadrunner),也只有13万个计算机核心。然而,这台庞大的计算机每秒钟能够进行一千万亿次浮点运算,每工作一天,就相当于全球六十亿人,每秒钟计算一次,一直计算46年。

IBM-roadrunner-supercomputer

超级计算机在数十年的发展中,走过了向量机、并行处理机两个阶段,现在广泛采用的是集群架构。我们可以把集群看成是由高速网线连接起来的一个小型高速计算机网络,实际上采用的是以数量取胜的战略:把工作分配给更多的CPU(中央处理单元,Central Processing Unit)来完成,从而提高效率。例如,“走鹃”采用了6500个AMD“皓龙”双核CPU来管理文件和处理输入输出,使用了12万个PowerXCell 8i芯片来进行密集型的科学计算——后者以前是被设计使用在索尼的游戏主机PlayStation3上的。整个“走鹃”所使用的所有元件都可以在市场上买到。

但是,能买到所有的元件并不意味着任何人都可以在自己家里造出一台“走鹃”。对于超级计算机来说,软件的重要性甚至超过硬件。只有通过合适的软件,把计算任务以最优的方式分配、及时监测和替换坏掉的处理器,才可能获得良好的性能。换句话说,超级计算机需要能够自己管理自己,把自己调整到工作的最佳状态。

在最近一期的Top500榜单中,中国最快的超级计算机是胜利油田的一台用于石油勘探的计算机。这台机器排名第111位,运算速度为每秒钟18.6万亿次。它共有4096块CPU,但是在没有经过调整优化之前,只能达到9万亿次左右的水平,勉强能排进450名之后。对于集群式架构的超级计算机来说,如何调整优化整体性能,是最重要的研究方向之一。

Google在管理大型集群方面很有经验。Google迷们津津乐道的一件事,就是Google在发展初期曾经大量收购旧电脑,把它们连接在一起提供搜索服务,而不是像别的网站那样采购昂贵的大型服务器。这种战略在Google的高效集群管理手段的控制下很有效,一直到现在,Google依然采用大量便宜的小型个人电脑级别的服务器来提供服务。现在,业界普遍认为Google拥有45万台以上的服务器,为全球的客户每秒钟提供数亿次的搜索服务。

但是Google的这种模式并不是可以轻易复制的。大规模集群的配置管理是Google的核心技术之一,就是这种技术让Google能够以更低的成本获得更高的运算性能。目前在这一领域能和Google抗衡的企业屈指可数,其他企业只好望洋兴叹了。

超级计算机的“超级”二字,不仅是指它的运算速度。一般超级计算机的体积和重量也够“超级”,而且还“超级”耗电和“超级”发热。“走鹃”占地480平方米,一共使用了278个冰箱大小的机柜,(数据来源于IBM官网,与网上流传版本略有不同。目前报道中通常说这套超级计算机占地面积为6000平方英尺,即570平方米左右)重达220吨,当它要搬家时,要动用20台拖车。它的耗电量达到了2.35兆瓦,发热量足可以维持一个室外温水游泳池——在瑞士,IBM设计的一个数据中心已经开始这么做了。

三、超级计算机和我们的未来生活

计算机领域有一个著名的摩尔定律(Moore’s Law),认为计算机的运算能力会每十八个月翻一番。按照这个理论,十五年后计算机的运算能力将会是现在的1000倍。但是在超级计算机身上,这一理论却显得过于保守了。2008年6月排名第一的超级计算机的运算能力是1993年排名第一的计算机的17000倍,排名第500的超级计算机的运算能力提升了21000倍,而500台超级计算机的总运算能力提升了10000倍。之所以出现这种情况,不仅仅是因为人们在提升单个CPU的运算能力(实际上,这倒是遵循摩尔定律的),还在于人们在计算机硬件结构和软件上的改进:CPU越来越多,数据传输越来越快,负载管理越来越有效等。

曾经有人说,今天的超级计算机就是明天的家用电脑。然而,除非人们能够找到大幅减小计算机体积和能耗的方法,或者设计出完全不同于现有计算机结构的新型计算机(例如量子计算机),否则超级计算机也只能是政府、大型企业或者研究机构才能用得起的设备。不过,随着超级计算机的广泛应用,也许我们将来可以在家使用超级计算机的运算能力。

升阳微系统(Sun Microsystem)公司的创始人斯科特·麦克尼利(Scott McNealy)在二十年前曾经发表过的“网络就是计算机”的著名论断,现在正在逐渐成为现实。随着互联网的发展,出现了大量的网络应用程序,它们正在替代那些需要安装在个人电脑上的软件。Google、微软、Adobe等软件业巨头也正在向这方面努力,试图让用户可以通过网络来使用那些过去只能安装在个人电脑上的软件。也许在不久的将来,我们就可以通过互联网使用那些超级计算机的运算能力,来完成那些在我们的个人电脑上不能完成的计算任务;也许再过几年,我们就可以使用简单的客户端——可能简单到只有输入和输出设备就够了——来调动不知身在何处的超级计算机帮助我们工作。人们孜孜以求的目标终将实现,人们可以在任何地方使用任何设备来完成任何工作,无论是想发送电子邮件还是视频点播,无论是查看一幅地图还是编写一段程序。人们和计算机之间的关系将会越来越紧密,计算能力会像自来水或者电力一样司空见惯。

无论如何,超级计算机是我们这个时代最伟大的发明之一,它正在带领人类在以过去无法想象的速度向前飞驰,劲头十足,无法抵挡。

给我留言

Copyright © 浩然东方 保留所有权利.   Theme  Ality 07032740

用户登录