千万亿次计算:迈入时代 还是走入误区

大约在三年前,美国能源部下属的国家核安全管理局选择在著名的洛斯阿拉莫斯国家实验室(Los Alamos National Laboratory)开发超级计算机Roadrunner,两年后,IBM帮助他们实现了这一当时看起来像是“奢望”的构想,在花费了1亿美元,经过三个阶段实施之后,世界上第一台“混合”超级计算机Roadrunner出现在我们面前,并当之无愧的位列TOP500高性能计算排行榜的首位。

Roadrunner的计算能力可达到1 petaflop(每秒钟一千万亿次计算),比部署在劳伦斯利物莫国家实验室(Lawrence Livermore National Lab)目前世界上最快的计算机IBM “蓝色基因”(Blue Gene)快了1倍,Roadrunner的速度大约是目前全球500强超级计算机中其他领先对手的近三倍。

自此,人类实现了千万亿次计算的梦想。

Roadrunner:我到底是什么?

被主要用于保证美国核武器储备的安全性和可靠性的Roadrunner不仅诞生目的并不纯洁,而且其本身也是一个名副其实混合系统:Roadrunner是世界上第一台混合超级计算机。通过一种前所未有的设计,实现了最初为视频游戏平台(如索尼的Playstation 3?)而设计的Cell宽带引擎(Cell Broadband Engine? )与AMD x86处理器的联合协作。

Roadrunner的创举在于,其完全用可以在市场上买到的商业部件构造,而非那些特殊的外面买不到的“天外之物”:Roadrunner总共采用了6562个双核AMD Opteron?芯片和12240个Cell芯片(安装在IBM QS22 BladeCenter刀片服务器上)。Roadrunner系统拥有98 TB的内存,安装在相当于278个冰箱大小的IBM BladeCenter机架之中,占地5200平方英尺。系统的10000个连接(包括Infiniband连接和千兆以太网连接)需要55英里长的光纤电缆。Roadrunner的重量为500000磅。提供相关组件和技术支持的公司包括Emcore、Flextronics、Mellanox和Voltaire。

不过定制配置也是Roadrunner所必须采用的,IBM将2片IBM QS22 BladeCenter刀片服务器和1片IBM LS21 BladeCenter刀片服务器组合为专用的“3-刀片”(Tri-blade)Roadrunner配置。这台计算机总共安装了3060个由IBM设在明尼苏打州罗彻斯特工厂生产的3-刀片。标准化处理(如文件系统I/O处理)由皓龙(Opteron)处理器执行,计算和CPU密集型处理则直接交由Cell处理器完成。每一个3-刀片单元每秒钟可完成4000亿次计算(400 Gigaflops)。

这台计算机由IBM设在纽约州的Poughkeepsie工厂完成生产、测试和基准检测,上世纪90年代末IBM曾在这里为美国政府制造了ASCI系列超级计算机。IBM设在明尼苏打州的罗彻斯特工厂制造了专用的3-刀片服务器。软件的开发部分由德克萨斯州Austin的IBM工程师及来自纽约州IBM Yorktown Heights研究实验室的研究人员合作完成。Roadrunner将在今年夏末,利用21台拖车运至新墨西哥州的洛斯阿拉莫斯国家实验室。

当然,即使是国家实验室,洛斯阿拉莫斯国家实验室也没有尽情享用电力的能力,因此,与大多数传统超级计算机的设计相比,Roadrunner的混合模式使得其可以仅消耗极少的电力(2.35兆瓦),便实现世界领先的能源效率,每瓦特电力可完成4.37亿次计算。IBM预计Roadrunner将位列6月末出炉的超级计算机“绿色500强”名单之中, 成为最节能的系统之一。

千万亿次:到底有多快?

Roadrunner的运算速度超过了1 petaflop(每秒钟一千万亿次计算,即10的15次方)。

众多的笔记本电脑。 Roadrunner大致相当于10万台目前最快的笔记本型电脑的计算能力总和,若将与其计算能力相当的笔记本电脑叠加起来,大概有1.5英里高。

如果地球上的全部人口(大约为60亿)一起计算,每人使用一个手持计算器,以每秒钟完成一次计算的速度,连续计算超过46年的时间,才能完成Roadrunner一天的计算量。

在过去的十年中,超级计算机的计算能力增加了大约1000倍。今天,仅仅3个Roadrunner 3-刀片处理单元就可与1998年速度最快的计算机相匹敌。一项复杂的物理学计算,在1998年,计算机需要花费20年的时间才能够完成(到如今才刚刚完成了一半),而如今Roadrunner仅在一周之内便能完成。如果汽车油耗在过去十年中的改进速度能够赶上超级计算机成本和效率的提升速度,那么如今一加仑汽油将可以行驶20万英里。

基于Cell处理器的混合超级计算应用甚广,包括:资本市场的实时因果分析,在金融服务领域,超级计算机还可即时预测股票市场变化对于整体市场的连锁反应。在医疗领域,病人在进行检查的同时,各种复杂的组织和骨骼结构三维透视图也可实时提供。

千万亿次的四大挑战

对于千万亿次计算来说,首要的挑战来自于应用程序,从百万亿次到千万亿次,再到未来的XScale,甚至是更加长远的未来,我们现在做的应该是搭建一个可以从百万亿次到千万亿次的桥梁,要顺利的跨越过去——不需要重新设计应用程序,不需要重新的架构应用,更不需要将一切推倒重来,这才是我们迈向千万亿次计算的关键,否则,当我们一次又一次在时代的门槛上重新穿戴整齐时,时代早以远去。软件要解决的问题有两点,第一,充分利用现有的应用程序,并让他们能够更加充分的调度处理器;第二,保证现有的应用程序在千万亿次之后不仅要跑的起来还要跑得好。

其次,千万亿次计算需要考虑到系统的扩展性问题,在一个胖树拓扑结构中,用户不必过于关注延时,但当系统规模扩展超过 2万个处理器时,就必须采用低度(low-degree)互连或网格(grid)互连,胖树结构不适用于这样的规模,延时将变成一个非常重要的问题。千万亿次计算机系统如何提供大规模可扩展低延迟交换互联?

第三,功耗的挑战正在逐步逼近,如果说Roadrunner的功耗能够被美国政府接受的话,那么,千万亿次计算的对于其他的人来说,恐怕实在是太耗电了。

事实上,功耗正在制约着千万亿次计算的,甚至整个高性能计算系统的发展,当前每个节点功耗在300到1500瓦之间,而一个机柜功耗在20到30千瓦左右。当今全球百万亿次超级计算机系统功耗在1500千瓦到8000千瓦之间,2010年一台持续千万亿次超级计算机系统可能需要消耗20兆瓦或更高的功耗,其每年的电费开销也将高达1亿元人民币以上。当前全球也只有少数几个实验室能满足这样的能耗要求。

第四,非处理能力的限制,存储器性能与处理器性能差距的越来越大以及本地带宽及延迟和全局带宽及延迟的不一致性导致存储器供数能力与处理器计算能力的不协调,我们也称之为存储器墙(Memory wall),与此同时,我们还要确保系统从I/O输入到I/O输出均保持均衡的带宽设计,在有着2万颗或更多颗处理器的千万亿次超级计算机系统中保持这种I/O均衡设计并非易事。

当然,我们还需要设计包括故障隔离、故障恢复等有关可靠性的系统设计,提高系统的平均无故障时间,提供容错和对于多种应用程序的不同要求的兼容处理能力。

因此,千万亿次计算的标杆已经被Roadrunner超越,但是所遇到的困难,或者说迈进千万亿次计算时代的时候还离我们早得很。