1997年6月TOP500排名中第一次出现Linpack测试超过万亿次(1 Tflops)超级计算机,8年后全球最快超级计算机TOP500排行榜入门门槛提高到1 Tflops,万亿次计算时代来了。
"Petascale"、"Petaflops"是当前在高性能计算机领域经常使用的两个词汇。所谓"Petascale"或 "Petaflops"是指每秒进行1000万亿次双精度浮点运算,这是当前全球最快的超级计算机–安装在美国能源部洛斯阿拉莫斯国家实验室 (NASL)的IBM蓝色基因/L系统的3.5倍。自1997年6月TOP500排名中第一次出现Linpack测试超过万亿次(1 Teraflops)超级计算机,到8年后全球最快超级计算机TOP500排行榜入门门槛1 Teraflops,我们说万亿次计算时代真正到了。
千万亿次的概念
实际上我们在谈千万亿次超级计算机时必须要区分三点:一是系统理论峰值计算速度千万亿次;二是通常意义下全球TOP500排名中 Linpack测试峰值Pflops; 三是在实际应用中持续应用性能Pflops。我们在谈到千万亿次计算时更多的是指在实际应用中持续应用性能超过千万亿次每秒。
TOP500中几年来第1名和第500名均保持6~8年的时间,也就是说当今的第1名在6~8年后则排名到第500名,而8~10年后微处理器芯片就可达到本年度TOP第500名的浮点性能。当前,全球高性能计算机学术界及产业界都期待并预测2010年6月第一台Linpack测试峰值千万亿次(Petaflops)计算机的出现,并期待8年后,也就是2018年,千万亿次超级计算时代的真正到来,也就是说千万亿次将是全球TOP500排行榜的入门门槛。
超级计算机一直是各国关键技术装备之一,广泛应用于国防、信息安全、石油勘探、气象预报、生物制药、工程仿真、科学计算、商业计算等领域,是各国战略竞争的制高点。当前,全球各国都投入了巨大的人力物力进行研究。
第28次全球TOP500超级计算机系统排行榜地域分布,我们可看到,全球最快性能TOP500超级计算机大部分在美洲,欧洲和亚洲最快 TOP500超级计算机之和也不敌美国。近年欧洲超级计算机比例有所下降,美洲则有所增长。欧洲和亚洲已势均力敌,其占有量英国和德国占有优势。在亚洲超级计算机占有量日本占优势,中国和印度正在奋力直追,但与美日相比,仍有较大差距。
各国的千万亿次之路
当前全球共有四个国家发布了千万亿次超级计算机系统研发计划。
1.美国
DARPA HPCS(美国国防部预先研究计局,High Productivity Computing Systems program)项目目标就是开发高生产率千万亿次超级计算机系统,当前该项目已从大规模研究阶段转向最后阶段–2010年前完成两台千万亿次高生产率超级计算机系统的研制和开发。IBM PERCS系统和Cray的"适应性超级计算"(Adaptive Supercomputing) Cascade 系统分别获得2.5亿美元和2.44亿美元资助,用以研制并产品化可扩展至4Pflops的超级计算机。该项目千万亿次超级计算机系统每秒千兆位 (GUPS)更新(系统对存储器的随机更新速度)将达到8000-64000GUPS,将是当前GUPS最高记录保持者–IBM蓝色基因(IBM Blue Gene/L)的200~1800倍。
IBM PERCS系统基于Power7微处理器、AIX操作系统、通用并行文件系统(GPFS)、IBM并行计算环境及互联和存储子系统进行开发。在该系统中IBM同时计划开发高效用软件和开发工具,以提高开发人员的生产率。
Cray Cascade 系统本质上是一个能在单系统中提供包括标量、FPGA和混合矢量/超级多线程(MMT)处理器板卡的机箱内集群(cluster-in-a-box)。在该系统中,Cray将设计一款基于其XD1系统的FPGA加速板卡。Cascade系统将开发编译器软件以处理多种涉及标量、矢量或MMT应用的混合任务。在未来四年中,Cray将基于Cascade系统研发商品化的千万亿次超级计算机,如为美国国家橡树岭实验室 (ORNL)开发代号为"Baker"的超级计算机系统。"Baker"超级计算机预计采用四路双核AMD Opteron处理器(24000个处理器),基于Cray专用SeaStar 3D互连网络实现和AMD HyperTransport总线互联。
2006年9月,IBM发布了代号为"RoadRunner"的千万亿次超级计算机研发计划,这台代号为"Roadrunner"的千万亿次超级计算机计划于2008年部署在美国洛斯阿拉莫斯国家实验室(LANL),采用基于AMD Opteron的"IBM System x3755服务器"与基于Cell BE的"IBM BladeCenter H 系统"来构造,以实现1.6Pflops以上的峰值性能。全系统预期采用16000颗AMD Opteron CPU 和16000颗八核Cell 处理器芯片,同时Roadrunner还将采用先进的"混合编程(Hybrid Programming)"软件,以实现异构计算。在超级计算机研发方面,IBM的目标是2010年开发出峰值性能达到1Pflops的"蓝色基因/P" 系统,2010~2012开发出峰值性能达到10Pflops的"蓝色基因/Q"系统。
美国能源部(DOE)和国家科学基金会(NSF)也都推出了各自的Petaflops系统研制计划,NSF的目标是在2010年左右实现持续性能达到Pflops规模的系统。
2.日本
当前日本共有五个千万亿次超级计算机研制计划: MDGRAPE-3计划,2006年6月完成;GRAPE-DR 计划,2004年到2008年;Next-Generation Supercomputer Project 计划,2006年到2012年完成;富士通公司(Fujitsu)3Petaflops超级计算机系统研制计划,2005到2011年完成;地球模拟器的升级计划。
从某些方面来说,日本已凭借其MDGrape-3高度并行专用超级计算机系统实现了Pflops计算能力。Grape计划开始于十几年前,最终在2006年6月完成。其目的是为天文模拟以及后来的分子动力学模拟提供高精度N-体计算,由日本物理与化学研究所牵头。
与此同时,富士通公司与日本九州大学合作期望能在2011年实现3Pflops超级计算机系统。该系统基于光交换(opto- switching)技术,采用100Gflops处理器,一块处理芯片上具有8个处理器。"地球模拟器"计算机升级后也预期将达到16Pflops性能,该系统将采用两种计算模式:粗略计算和精确计算以实现更高的并行计算效率。
3.法国
法国Bull公司也计划在2013年开发出千万亿次超级计算机系统,用于一项法国军事项目。
4.中国
根据《国家中长期科学和技术发展规划纲要》、《国家"十一五"科学和技术发展规划》和《863计划"十一五"发展纲要》,我国设立了"高效能计算机及网格服务环境"重大项目,曙光公司和中科院计算所已获该重大专项基金支持,将在2008年6月完成应用于科学工程计算、网络信息服务和数据库应用的100万亿次超级计算机系统,并在2010年最终实现中国的千万亿次超级计算机系统。
挑战依然严峻
如果用刀片服务器在理论上来构建千万亿次超级计算机系统,我们若采用64位2.4GHz 四核处理器(每个核2个CPU),每颗CPU实现38.4Gflops的计算性能,那么我们需要26200颗四核 64位2.4GHz CPU。如果每个刀片服务器采用7U10片的架构,每个计算刀片采用双路SMP,我们需要采用1310个刀片服务器、220个标准42U机柜,才能实现1Petaflops的峰值计算性能。整个系统预期重250吨,功耗在400兆瓦以上。
这只是理论峰值的构建,具体在构建中,我们将面临诸多的问题:操作系统、编译软件、并行计算环境等系统和应用软件的扩展性问题,如何支持 26200颗CPU的扩展; 网络互联问题,我们需采用什么样的网络来降低如此大规模系统通信之间的延迟; 高效率并行算法的挑战,在千万亿次超级计算机系统中由于求解问题和系统规模的扩大,我们需要并行度和并行效率更高的算法;同时我们也面临系统高可靠性和散热、功耗、占地面积的挑战,具体如下所述:
1.扩展性问题
在一个十万亿次量级的高性能计算机系统中,当前千兆以太网、万兆以太网、InfiniBand、 Myrinet、Quadrics等商业化网络均可为应用开发者提供完整的网络互联。在一个胖树拓扑结构中,用户不必过于关注延时,但当系统规模扩展超过 2万个处理器时,就必须采用低度(low-degree)互连或网格(grid)互连,胖树结构不适用于这样的规模,延时将变成一个非常重要的问题。千万亿次计算机系统如何提供大规模可扩展低延迟交换互联?
与此同时,今天,基本上没有系统软件和应用软件能扩展到这样一个处理器的规模。当前最快性能超级计算机拥有超过6000颗处理器,未来的千万亿次计算机系统,其复杂性将远远超过这一规模,我们迫切需要重新设计软件与硬件编程模型,以适应系统的大规模扩展和求解问题的大规模扩展,并确保其高效性和高并行度。
2.可靠性问题
当千万亿次超级计算机系统扩展到成万或十万颗之多CPU以及几百TB内存时,我们如何保障硬件系统的可靠性,同时在这样大规模的系统运行中,软件错误也很难避免。
我们必须设计系统级的故障隔离、故障恢复机制,从而有效减少系统的平均无故障时间,也就是说,系统必须具备容错计算的能力。当前从软件层面实现系统相关故障的隔离和应用迁移是可行的办法之一。
3. 功耗挑战
功耗已经成为制约千万亿次超级计算机系统研发的主要因素之一,当前每个节点功耗在300到1500瓦之间,而一个机柜功耗在20到30千瓦左右。当今全球百万亿次超级计算机系统功耗在1500千瓦到8000千瓦之间,2010年一台持续千万亿次超级计算机系统可能需要消耗20兆瓦或更高的功耗,其每年的电费开销也将高达1亿元人民币以上。当前全球也只有少数几个实验室能满足这样的能耗要求。
同时能源的价格也在飞速增长,未来2010年千万亿次超级计算机系统的能源消耗预期将远高于以上估算。我们可能会采取比如水冷或节能型芯片、FPGA(现场可编程门阵列)等技术,但不能从根本上解决能耗问题。
4.均衡性挑战
千万亿次超级计算机系统其均衡性设计面临诸多挑战:
其一,存储器性能与处理器性能差距的越来越大以及本地带宽及延迟和全局带宽及延迟的不一致性导致存储器供数能力与处理器计算能力的不协调,我们也称之为存储器墙(Memory wall)。
其二,确保系统从I/O输入到I/O输出均保持均衡的带宽设计,在有着2万颗或更多颗处理器的千万亿次超级计算机系统中保持这种I/O均衡设计并非易事。
其三,千万亿次超级计算机生态链的均衡发展挑战。持续应用性能千万亿次超级计算机发展涉及到芯片、操作系统、编译器、并行计算环境、上层应用软件、算法、存储系统、交换系统等产业链各个环节的均衡发展,也涉及到技术、资金、人才、产业界、学术界等诸多环节的均衡发展与协调配合。