真实的谎言!天河一号排名中国第一超算名不副实
千万亿次(1PF)超级计算机是各国超级计算机领域共同追求的目标,随着天河一号的发布,我国也加入了1PF俱乐部,相距加入百万亿次(100TF)俱乐部仅一年时间,比起美国的三年,看似光鲜了很多,但再看效率(见下表),高达1206PF的峰值运算速度居然只能跑出理论值一半都不到的LINPACK,如果遇到真实程序,恐怕差距更大,为什么我们这么快就能突破千万亿次?为什么实际运行却大幅缩水?这跟天河一号的设计思想有关。
超级计算机取得突破无非两大原因,1.每个运算节点的性能大幅提升;2.运算节点数量大幅提升。
天河一号拥有2560个计算节点,成为我国第一个突破2000个节点的系统(之前的纪录是1920个),但是,这个级别的提升不足以实现数倍的跨越式发展,目前为止采用通用CPU的运算节点,最强大的是4-way Opteron 8435 2.6G主频,6核,2560个节点峰值运算能力约为638TF,不仅花费巨大,而且突破1PF无望,因此,必须采用其他办法取得突破。
异构是超级计算机领域的新生力量,通用CPU由于对整形运算有较高的要求,同时还有成本的限制,在浮点方面发展只能说四平八稳,够用就好;而以CELL处理器、GPU、Clearspeed计算卡为代表的“浮点怪兽”们则正好相反,大部分精力放在浮点能力上,以PowerXCell8i为例,3.2G主频,8个SPE浮点运算内核,单CPU就能达到102GF的峰值双精度浮点,而6核心的Opteron 8435仅62.4GF;GPU则更加夸张,一片4870X2显卡,750Mhz的主频,单卡就能达到480G的双精度浮点峰值。所以,最好的办法就是采用性能强大的显卡作为协处理器,大幅提升浮点效能,同时在功耗上具有极大的优势,成本当然也是最低的。天河一号实际也是这么做的。
R700的成本估算
按照一般市场价值估算,单片R700按娱乐级产品4870x2的售价估算在3300元人民币左右,而2560片R700价值至少就高达844万,考虑备件和AMD技术支持费用等边际成本,国防科大对R700的采购费用应该过千万,但这千万花费究竟值得不? 请让我们后文来解答。
1.2PF从何而来
根据公开资料可知天河一号由6144颗Xeon处理器(其中5120颗Xeon E5540用于计算)加上2560片4870X2显卡组成,显卡主频为575Mhz(标准的4870X2主频为750Mhz),峰值运算能力为1206TF(Rpeak),实测linpack(Rmax)为563.1TF。575Mhz下的4870X2理论双精度浮点能力为0.575*2*800/5*2=368GF ,2560片能提供942.08TF,剩下的263.92TF由5120颗E5540与1024颗E5450完成,GPU在峰值运算中的比例高达78%。
本系统的系统互联为infiniband,根据2009年6月的top500的资料,采用infiniband的Nehalem Xeon系统效率超过80%司空见惯,这里以80%计算Xeon E5540部分,2.53*4*4*5120*0.8=165.8TF,占整个系统563.1TF的29.4%,GPU部分的Linpack约为563.1-165.8=397.3TF,效率为42.3%,在TOP500中排名倒数,换句话说,天河一号虽然号称1.2PF,实际效能等同于0.75PF的其他超级计算机!
对比走鹃
目前排名第一的IBM Roadrunner(走鹃)是第一台异构的超级计算机,每个节点为一台Opteron刀片服务器加上两台PowerXCell刀片服务器组成。其中,6912颗(2008年的数据)双核Opteron主频仅为1.8G,只能提供49.8TF的峰值浮点,因此,Roadrunner的运算能力几乎全部由PowerXCell提供,而且效率超过了75%,仅为47%的天河一号可以说望尘莫及。
但是,天河一号也有其特色,Linpack测试中CPU提供了3成的运算能力,CPU在系统中的地位远超过Roadrunner中的Opteron,也就是说,遇到GPU有劲使不上的时候,CPU可以独立扛起大旗,而Roadrunner则逊色多了,一旦遇到Cell无法发挥,就和当年PS3运行linux一样抓瞎了。
至此,我们完全有理由称天河一号为中国特色的超级计算机,并且是异构机的先驱者,我们不像美国有这么多强大的超级计算机,CELL运行不好的可以扔到通用CPU为主的机型上跑,我们遇到GPU不能跑的应用,完全可以用CPU运行,怎么说165TF的Linpack在全国也能排名第二了。
天河一号的不足:成也GPU,烦也GPU
国际上关于GPGPU在2002年就开始有初步研究,2005年后发展提速,其中以Folding @ Home最为典型,然而第一个大规模在超级计算机中使用GPU的却是我们中国人(之前法国,日本均有试用,但仅仅作为实验,规模很小)可见GPU进入HPC领域也不是一帆风顺的。
GPU的问题来自于两个方面:
1.可靠性,ECC内存至今没有产品能够支持,HPC的运算繁重程度远远超过家用机,对精度的要求也远远超过游戏渲染,游戏渲染出现误差,一般都很难在画面中明显反映出来,玩家完全可以容忍,但科学计算是绝对不能容忍这些误差的!不过天河一号的客户不用担心这样的问题,毕竟还有5120颗精度没问题的CPU。
2.软件,这是GPU目前最大的缺陷,商用GPGPU程序确实比2006年多了不少, 但比起通用CPU组成的HPC程序,还是差得太多。针对NVIDIA GPU尚有C(CUDA)可以使用,AMD GPU则更为棘手,甚至比较出名的只有Folding@Home,能运行Linpack还是因为天河一号才知道的。由此可见,采用GPU的超级计算机很可能面临无法使用GPU运算的尴尬局面。在一张已经收录天河一号的名为2009 CHINA HPC TOP10的表格中处理器核这一栏堂而皇之的写着24576(6144*4),难道已经昭示了这一窘境?24576个核可是连300TF的峰值浮点都无法达到的!
另外,天河一号采用的是游戏显卡4870X2,比起其他GPU又有两个新问题:
1.除了GPU本身以外的可靠性问题,因为4870X2这样的游戏显卡的设计连8*5工作都无法满足的,而高性能计算的要求是24X7!这点从显卡的频率上就能看出了,575Mhz,我们熟知的4870X2,主频高达750Mhz,也许只有将频率降低到575Mhz才能满足长时间高强度运行的需要。相比之下, Telsa和FireStream这类计算卡,主频至少不低于游戏卡(Telsa甚至远远超过Geforce)。另外,4870X2整卡只有2GB显存,单个GPU仅1GB,而FireStream 9270单GPU就有2GB显存,Tesla干脆是4GB显存起跳,峰值浮点超过180GF的情况下仅有1GB本地内存。下图为一些典型的HPC每个CPU/GPU的内存规模,其中roadrunner取2008年的数字,Rmax为估算,从中可以发现,4GB实际已经成为下限,天河一号的1GB简直不可理喻!这还能做高性能计算么?难道真要以CPU为主?
2.Radeon GPU的运算效能问题,Linpack测试的4x%的效率很可能会成为RV770效率最高的纪录,Folding @ Home的GPU版最初为Radeon GPU优化设计,但是随着NVIDIA发布CUDA,AMD GPU输给理论性能仅为自己四分之一的NVIDIA GPU已经成家常便饭了。
总的来说,天河一号用GPU的思路是非常好的,Fermi之类的通用计算处理器也是未来超算的发展趋势,但运算效能的高低,取决于用什么GPU! 为了峰值性能,跑一次linpack,可以选择R700;为了实际效能和软件支持度,R700则是完全不着边的。
当然这个排名有意义么?
前面我们已经很清楚的论叙天河一号的超高的峰值运算能力和Linpack成绩是如何而来,在很大程度是依赖RV770的运算能力,不过由于RV770架构和Stream软件支持的问题,其在真正实用情况的通用计算领域的适用性和性能都存在明显的问题,导致天河一号的实际应用性能和理论性能有较大差距,实际运算能力同其排名并不相符,除去GPU部分的实际运算能力,天河一号的性能是不能算是国内第一的,逊色于国内其他企业的超算产品。
【编辑推荐】