关于作者

 一个毕业于北京大学数学力学系,在中国科学院计算所、计算中心和网络中心工作过,在澳大利亚科工组织DMS、香港浸会学院数学系和中国21世纪议程管理中心等处工作过,多次获国家和中科院科技奖并享受政府特殊津贴的退休老头。现在在【中国科普博览】网“科学新语林”栏目里开设一个《数学与计算机》的个人专栏,愿和爱好数学与计算机的各界网友和青少年朋友,谈谈对数学与计算机的看法、想法。

发展神速的巨型计算机

张建中
2012年04月05日
一、巨型计算机

巨型计算机(super-computer),又叫超级计算机高性能计算机(High Performance Computer, HPC)简称为巨型机,是相对于大型计算机而言的一种运算速度更快、存储容量更大、通信能力更强、功能更完善的计算机,现多指每秒运算速度在万亿次以上、存储容量超过千万字节的电子计算机,配有多种外部和外围设备及丰富的、高功效的软件系统。
巨型计算机是一个动态概念,其标准和水平随技术的发展不断提高。一个时期内的巨型机到下一时期可能成为一般的计算机;一个时期内的巨型机技术到下一时期可能成为一般的计算机技术。
巨型计算机是电子计算机的一个重要发展方向。它的研制水平标志着一个国家的科学技术和工业发展的水平,体现着国家经济发展的实力。一些发达国家正在投入大量资金和人力、物力,研制运算速度达数十亿亿次的巨型计算机。?
二、巨型计算机发展
巨型计算机研制始于20世纪70年代,最初用于科学和工程计算,在政府部门和国防科技领域曾得到广泛的应用。自20世纪90年代中期以来,巨型机的应用领域开始得到扩展,从传统的科学和工程计算延伸到事务处理、商业自动化等领域。对巨型机的研究也有了新的发展,无论是系统的体系结构,还是处理器芯片都有了新的进步。在我国,巨型机的研发也取得了很大的成绩,推出了“神威”、“银河”和“曙光”等代表国内最高水平的巨型机系统,并在国民经济的关键领域得到了应用。

银河- 十亿次运算的巨型计算机(1992年)

??

曙光5000A,百万亿次运算的巨型计算机(2008年)?

巨型计算机技术是一个国家综合实力的体现,对国民经济和社会发展有着直接的推动作用,体系结构经历了单机、多机、大规模并行机直至可伸缩并行计算机的变化;运算速度从最初的每秒百万次发展到今天的每秒千万亿次,平均每10年提高三个数量级;在开发环境、通信技术、存储技术和测试技术等各个领域也都取得了一些突破性的进展,使巨型机的设计从原来强调速度,发展到重视效率、易用、易管理和可靠性等诸多方面。
在巨型计算机技术发展的过程中,提高其性能的主要途径是通过改进体系结构、电路工艺和软件技术等实现的。
处理器作为巨型机系统中的主要部件获得了最快速的发展,加工工艺大约每三年出现一个技术代,集成度和时频每两年翻一番,性能每五年提高一个数量级。目前,巨型计算机大部分采用商品化的高性能微处理器,小部分采用定制处理器。??

德国Jugene 千万亿次运算的巨型计算机(2009年)???

三、巨型计算机的组成
巨型机主机由高速运算部件和大容量快速主存贮器构成。由于巨型机加工数据的吞吐量很大,只有主存是不够的,一般有半导体快速扩充存贮器和海量(磁盘)存贮子系统来支持。对大规模数据处理系统的用户,常需大型联机磁带子系统或光盘子系统作为大量信息数据进/出的媒介。巨型机主机一般不直接管理慢速的输入/输出(I/O)设备,而是通过I/O接口通道联结前端机,由前端机做I/O的工作,包括用户程序和数据的准备、运算结果的打印与绘图输出等。前端机一般用小型机。I/O的另一种途径是通过网络,网上的用户借助其前端机(微机、工作站、小型机等)通过网来使用巨型机。???
四、巨型计算机的关键技术
并行处理是巨型机技术的基础。为提高系统性能,现代巨型机都在系统结构、硬件、软件、工艺和电路等方面采取各种支持并行处理的技术。
数据类型 为便于高速并行处理, 中央处理器的数据类型除传统的各类标量外,都增加了向量或数组类型。?
硬件结构 ?现代巨型机硬件大多采用流水线、多功能部件、阵列结构或多处理机等各种技术。?
向量寄存器? 为降低存储流量和频带宽度的要求,并解决短向量运算速度低的问题,第二阶段的巨型机采取了向量寄存器技术。?
标量运算  标量运算速度对巨型机系统综合速度的影响极大。为此,除增设标量寄存器、标量后援寄存器或标量高速缓冲存储器以及采用先进的标量控制技术外,还可采用专作标量运算的功能部件和标量处理机等技术
主存储器  为进行复杂系统的三维处理,要求主存储器能容纳庞大的数据量。?
输入输出通道  巨型机不但配有数量较多的输入输出通道,而且具有较高的通道传输率。
固态海量存储器  为适应特大计算问题的大量数据在主存储器和外存储器之间的频繁调度,新型的巨型机采用固态海量存储器作为超高速外存储器。?
大规模集成电路  巨型机的逻辑电路都采用超高电路。?
并行算法和软件技术  为充分发挥巨型机的系统性能,必须研究各种并行算法并研制并行化的软件系统。针对特大型科学计算的特点,巨型机通常配置如下软件:具有多重处理能力的批处理分布式操作系统、高效的汇编语言、向量FORTRAN或PASCAL、ADA语言和向量识别器、并行化标准子程序库、科学子程序库和应用程序库、系统实用程序、诊断程序等。???
五、巨型计算机应用
巨型计算机实际上是一个巨大的计算机系统,主要用来承担重大的科学研究、国防尖端技术和国民经济领域的大型计算课题及数据处理任务,如大范围天气预报,整理卫星照片,原子核物理的探索,研究洲际导弹、宇宙飞船,制定国民经济的发展计划等,综合考虑各种各样的因素,只能依靠巨型计算机才能顺利完成。?
现代的巨型计算机,是强有力的模拟和计算工具,对国民经济和国防建设具有特别重要的价值,承担的一些重大应用项目,按计算类别大致可分为:?
科学工程计算??? 大范围天气预报、流体湍流分析、海洋环境与污染分析,卫星照片整理,原子核物理探索及核试验模拟,洲际导弹、航天器、飞机、汽车的辅助设计和模拟,基础科学研究中的理论计算,如药物分子设计、DNA蛋白质的整体电子结构分析、视学科学、认知科学等;?
事务处理??? 联机事务处理和分析,数据仓库和决策支持等,特别是制定国民经济的发展计划,项目繁多,时间性强,要综合考虑各种各样的因素,依靠巨型计算机才能顺利地完成;?
网络服务器??? 如Internet服务器,多媒体服务器和文件服务器等。?
据统计,计算机的性能与使用价值的平方成正比,即所谓平方律。按照这一统计规律,计算机性能越高,相对价格越便宜。因此,随着大型科学工程对计算机性能要求的日益提高,超高性能的巨型计算机将获得越来越大的经济效益。?
六、巨型计算机的衡量指标
近期,巨型机群系统的主要性能指标有峰值速度、实测速度和运行效率等。计算速度一般以计算机系统“每秒执行的浮点运算次数”(Floating point Operations Per Second,Flops)为单位,并定义了扩展单位MFlops(百万次浮点运算每秒)、GFlops(十亿次浮点运算每秒)、TFlops(万亿次浮点运算每秒)和PFlops(千万亿次浮点运算每秒)等。??
峰值速度:峰值速度通过计算得出,故也称理论峰值速度,其计算公式为:理论峰值速度(亿次)=节点机每个CPU主频(MHz) CPU每个时钟周期执行浮点运算的次数 CPU总数目/108。例如,“天河一号”的峰值速度为1206万亿次每秒(TFlops)或1.206千万亿次每秒(PFlops)。??
实测速度:用评测软件对机群系统计算速度的实际测试值。目前国际上通用的巨型计算机或高性能计算机评测软件是《Linpack》——这是一套采用求解线性方程组和特征值问题的方法来综合评价巨型计算机浮点运算性能的基准测试软件。实测速度能更客观地反映系统的实际计算性能,对用户而言,实测速度比峰值速度更有意义。??
运行效率:一般是指巨型计算机实测速度与峰值速度的比率。运行效率越高,表明系统具有的处理资源等经过合理的系统设计得到了更有效的发挥。相对于由处理器数量和性能决定的理论峰值速度而言,运行效率显然是一个能够更全面、科学地反映巨型计算机性能和技术先进性的指标。?
七、2012年巨型计算机展望
2012年初,有关媒体和单位对2012年巨型计算机的发展进行了如下展望:?
到2012年底,世界上最强大的10台巨型计算机将有望达到10Pflops以上。目前,日本的K系统是唯一一台性能超过10Pflops的巨型计算机。今年,10Pflops以上的系统将会陆续涌现,如美国国家巨型计算中心的“蓝水(Blue Waters)”系统、美国劳伦斯利弗莫尔国家实验室的“红杉(Sequoia)”系统、美国橡树岭国家实验室“泰坦(Titan)”系统、美国阿贡国家实验室的“米拉(Mira)”系统和美国德克萨斯先进计算中心的“蜂拥(Stampede)”系统等,所有这些系统都计划在2012年下半年制造完成。据报道,美国IBM公司近日开始向美国能源部国家核安全管理局(NNSA)交付“红杉”巨型计算机系统,目前已经交付了第一批共4个机柜,整机的组装将在2012年9月NNSA完全接收之后进行。届时,“红杉”系统将成为全球最高性能的巨型计算机,是目前最快的日本“K系统”的2倍;美国Cray公司向美国国家超级计算中心(NCSA)交付了“蓝水”超级计算机系统的第一批共48台机柜;美国SGI公司近日宣布,将为法国Total公司制造一台计算能力为2.3Pflops的超级计算机系统等。
以上提及的系统都是美国制造的,但如果年底前我国出现一台或两台超过10Pflops的系统也并非不可能。但美国拥有如此多的超10Pflops系统,势必将重塑美国巨型计算界的霸主地位。
2012年,我国将继续增加其巨型计算机的保有量。到11月,我国可能会在TOP500巨型计算机排行榜中占据100个以上的席位。而另一方面,欧洲的份额则有可能在2012继续萎缩,除非政府能重振金融业。
2011年底,俄罗斯T-platforms公司与俄罗斯莫斯科国立大学签署了一份建造10Pflops巨型计算机的协议。根据该协议,T-Platforms公司将开发整个计算系统,包括必要的巨型计算机和工程基础设施,以确保不间断作业的处理。可以看出,俄罗斯正在试图追赶美国、中国、日本、欧洲,跻身百亿亿次巨型计算机大国行列。

??

在最新世界排名中位居第一日本京字巨型计算机“K”(2011年, 1.051亿亿次?)

中国“天河一号”巨型计算机(2600万亿次)?

八、巨型计算机的发展前景
科学家预计,未来10年左右的时间,世界上将研制出运算速度超过每秒百亿亿次E级别的巨型计算机。这个速度是目前世界上最快计算机的1000倍。一些重大的科学研究,例如气候预报和灾害性天气预报以及飞行器的空气动力学计算等,都需要这个量级的计算机。?
巨型计算机性能的发展遵循千倍定律,即每隔10年性能就会提高1000倍,而实际上发展的速度可能更快。如果只使用当前的技术是无法研制出百亿亿次E级别的计算机。10的18次方E级别的计算机,芯片之间应采用光互连,而研制10的21次方Z级别的计算机,那更是多年后的事情,目前的半导体技术还不能支撑,或许会采用纳米电子技术或量子计算技术。?
人类对于高性能计算机的需求是无止境的。这其中每一个台阶都需要从基础理论到实践技术以及应用技术的重大创新和跨越。未来巨型计算机发展中,混合的架构将成为主流。但这种混合架构的计算机编程十分复杂困难,需开发更多的软件。
未来巨型计算研制中,峰值速度其实只是性能的一个方面,可靠性、易用性、互联通信、能耗等问题将更加突出。百亿亿次计算机需要数百万甚至上千万个CPU,可靠性将成为最令人头疼的问题,有效的降低能耗措施,也是一个急待解决的问题。?
附注:巨型计算机速度以每秒的浮点运算次数"FLOPS"作为度量单位。 常见的表示计算机中的数量或速度用的单位英汉对照如下:??
1K=210=1,024≒103
1M=220=1,0242=1,048,576≒106? (mega)百万数量数(又称兆数量级)?
1G=230=1,0243=1,073,741,824≒109? (giga)十亿数量数
1T=240=1,0244=1,099,511,627,776≒1012? (tera)万亿数量数
1P=250=1,0245=1,125,899,906,842,624≒1015? (peta)千万亿数量数?
1E=260=1,0246=1,152,921,504,606,846,976≒1018? (exascale)百亿亿数量数?
1Z=270=1,0247=1,180,591,620,717,411,303,424≒1021? 十万亿亿数量数?
1Y=280=1,0248=1,208,925,819,614,629,174,706,176≒1024? 亿亿亿数量数