超算的核心技术并不只有CPU
随着天河2号成为全球运算最快的超级计算机,并在2015年国际超级计算机大会上蝉联5连冠,天河超算再次成为国人的骄傲。就在天河超算取得傲人成绩之时,一些不和谐的音符也如影随形——有人表示中国超算只是拿国外CPU做的组装货,不具备科技含量;有人表示,把只要有钱,买更多的CPU就能堆出比天河2号性能高好的超算;更有人表示只要把中国人的手机芯片连接起来就能轻松超越天河2号的运算能力,因此,天河2号没啥大不了的。
那么,事实真如上述“冷静党”所言,只要有钱堆砌更多的CPU就能获得优于天河2号的超算……让我们来看看超算由哪些系统组成,并有各有什么功能。
超算系统组成和功能
超算系统可以分为软件系统和硬件系统两部分。
超级计算机硬件系统主要由高速运算系统、高速互连通信网络系统、存储系统(I/O 管理结点和 I/O 存储结点)、维护监控系统、电源系统、冷却系统和结构组装设计等部分组成。
高速运算系统负责逻辑复杂的调度和串行任务和并行度高的任务,可以是采用同构计算(纯CPU组成计算节点),也可以采用异构计算(CPU+加速器组成计算节点);
(飞腾CPU计算节点)
高速互连通信网络由infiniband、高速以太网、自定制互联机制构成,将所有计算节点连接起来,使其成为一个整体;
存储系统由内存和外存组成,负责数据交换和储存;
维护监控系统保障超算不死机、不出错,毕竟每隔几秒出一次错,死一次机,这种足以让超算的使用者精神崩溃;
电源系统包装能源供应;
冷却系统帮助超算降温,防止出现超算过热而造成的不良后果;
结构组装设计是将上述系统装载到一起,在保障性能的基础上,实现机柜体积最小。
超级计算机软件系统主要包括操作系统、编译系统、并行程序开发环境、科学计算可视化系统等四个重要组成部分。
操作系统系统主要包括对同构技术或异构协同支持,高效能支撑扩张,基础服务内核,全局并行文件系统;
编译系统的功能是支持C、C++、Fortran77/90/95等编程语言,支持OpenCL、OpenMP、MPI等并行编程语言,支持编译优化;
并行程序开发环境的功能是提供一体化图形用户界面,支持应用程序的调试和性能分析;
科学计算可视化系统由海量数据服务模块、并行绘制与显示模块和可视化映射与操作模块组成。
因此,运算系统、存储系统、互联系统、操作系统、基础库、应用软件,以及监系统控、冷却自提、电源系统等都是超算的重要组成部分,将CPU等同于超算的全部技术的说法显然是非常不科学的。
超算的核心技术并不只有CPU
CPU是超算的重要组成部分,但不是超算技术的全部。网络上一些人将CPU技术等同于超算技术,进而因天河超算使用美国Intel公司的CPU而声称中国超算不具备核心技术的说法是荒谬而可笑的。
就以天河2号来说,除了计算节点的CPU是美国Intel公司的,体系架构、互联网络、存储、系统软件、应用软件、电源、冷却等系统大部分都是中国人自己做的。
实际上,相对于声名显赫的CPU,默默无闻的体系结构设计才是一直被大众和媒体忽略的关键技术。举例来说,曙光星云采用了自主研发的超并行处理体系结构、神威蓝光超算采用了大规模并行处理体系结构、天河1号采用了多阵列可配置协同并行体系结构、天河二号采用了自主创的新型异构多态体系结构。
(天河1号)
体系结构设计能力有多重要呢?
打个比方,如果说超算是一只军队,那么体系结构设计就是军队的历史传承、光荣传统、组织管理水平、军事训练水平、武器装备、后勤能力、高级将领的战略指挥水平和中下层军官的战术指挥能力,而CPU则是军队的士兵。
铁打的营盘,流水的兵。相对而言,前者对一直军队更为重要,士兵军事素养相对而言则处于相对次要地位,而士兵的来源地和籍贯就居于更加次要的地位。
也正是因此,某些媒体攻击天河超算采用国外CPU,不具备核心技术的说法是非常不妥当的。
超级计算机不是简单的CPU堆砌
某些人觉得只要有钱买足够多的CPU就能堆出性能超越天河2号的超算,甚至有媒体说,把足够多的手机芯片连起来就能超越天河2号。但实际上,这个说法也是值得商榷的。
因为堆CPU也是一个技术活,体系结构设计的不好,高速互联网络做的不行,系统软件做的不好,储存列阵做的不行,即使堆再多的CPU,超算的性能也上不去。简单粗暴的堆砌CPU根本不可能制造出一台超级计算机,更不要说是能与天河2号相匹敌的超算。
另外,哪怕掌握了正确的堆砌CPU的方法,也不是单凭靠堆CPU数量就能获得一台能与天河2号相匹敌的超算。原因何在? 因为超算建设不是简单的搭积木式的堆砌CPU——即便堆砌了海量的计算卡,但受制于其他方面,比如高速互联网的技术水平而导致无法到达理论计算性能。
具体来说,高速互联网络的难点在于超算的计算节点之间传输的数据量巨大,延迟要求严格,当互联网络效率不足,就会导致数据拥堵,大幅降低超算整机系统效率。而超算的计算节点越多,对互联网络的要求也就越高。因此,即使想通过堆砌CPU来提升运算能力,也会受限制互联网络的性能,造成这种做法并不能无节制的提升超算的性能——受限于诸如互联网络以及其他方面的瓶颈,整机效率被拉低,导致实际性能并没有因为堆砌了更多的CPU而有所提高。
另外,堆砌过多的CPU还存在功耗过大、机箱体积过大等问题,非常不利于日后的运营维护和使用,在超算市场基本不具备市场竞争力。
正是因为高速互联网络的重要性,相对于在2015年才对中国四家超算中心禁售计算卡,高速互联网络却早就被美国列入技术封锁的名单。
在软件系统方面,控制少量计算节点和控制大量计算节点对软件系统的要求近乎于天差地别。软件系统必须保证每个超算计算节点的性能被发挥到最大才能充分挖掘出硬件上的潜力,否则,就会影响超算的整机效率。
另外,TOP500头几名的计算节点大多在数千近万,甚至一万个以上,某几个计算节点损坏,并需要更新是常有的事。当计算节点损坏时,软件系统必须做到部分节点损坏时不会发生死机、报错等情况,不影响计算任务的持续。
因此,如果没有一个好的体系结构,那么CPU的性能将无法全部发挥出来,而且堆砌的CPU数量越多,整个系统就越复杂,对高速互联网络、存储列阵、监控系统、冷却系统和软件方面的要求也就越高,整机效率的提升也就越难。而体系结构设计能力水平不够高的情况下,单纯堆砌CPU数量,反而会降低整机效率,无法提升整机性能。
天河2号的闪光点
回到开篇提到的,某些人指责天河1号和2号使用美国CPU的话题。
其实,天河1号和天河2号在使用美国CPU和GPU的同时,也部分使用了国产飞腾CPU,具体来说,天河1号使用了2048片我国自主研发的飞腾 1000 八核心处理器,被用于高速互联网络系统,天河2号使用了4096片飞腾1500,也被用于高速互联网络系统。
那么两台天河超算各用了多少美国的CPU和GPU呢?
天河1A使用了14336片Intel Xeon X5670六核处理器,7168片NVIDIA Tesla M2050高性能计算卡,飞腾1000占天河1号总芯片比重为9%;
天河2号使用了32000片Intel的E5 2692和48000片Xeon Phi,飞腾1500占天河2号总芯片比重为5%。
这一方面暴露出在在建设天河1号和天河2号时,中国在CPU、GPU的设计和制造方面与美国有较大的差距,当时的国产CPU中找不到Intel公司的E5和至强PHI计算卡,以及英伟达GPU的替代品。
但从另一个方面讲,同样使用美国的CPU,为何美国的超算在性能上就是敌不过中国超算呢?同样使用E5和至强PHI计算卡的美国超算Stampede,不仅运算能力仅为天河2号的五分之一左右,整机效率也比天河2号更低,只有60.7%,这是否说明国防科大在超算研发方面深厚的技术底蕴呢?
(天河1A参数)
结语
如果说天河2号、曙光6000、天河1号等超算使用了国外CPU、GPU是白璧微瑕。那么,走GPDSP技术路线的天河2A完全实现了对Intel至强PHI计算卡的国产化替代。而某100P超算实现了全面国产化,实现了在超算领域彻底扭转了在技术和信息安全上受制于人的局面。
关于作者:铁流,自由撰稿人,瞭望智库特约科技观察员。