服务器 频道

巨型机横评 实战考验三大超算应用性能

    二、巨型机横评 实战考验三大超算应用性能

   1、地球外核热流动数值模拟

    前面我们提到,在原始的算法中,随着处理器核数的增多,整个应用的效率并没有出现大的提升,从64核到4096核的并行效率只有8.2%。这与其主要特点是分不开的。据杨超助理研究员解释,这个数值模拟算法主要计算的是三维球壳区域的交错网格,采用线性方程组迭代BiCGStab、TFQMR求解和预设条件子RAS区域分解,子区域求解器是ILU(0)。

     此程序的原始版本在2008年做第一次移植的时候,通过计算机科学原理加快了4~6倍,然后通过PETSc分解出线性解法器预条件子和Multi-Physics区域分解器之后形成新算法,进一步使算法加快2~5倍,并显著改善了并行效率。

    改进效果如下图所示,在IBM蓝色基因上测试128*128*96的网格,新程序加快了10倍以上,并行效率更是从原先的8.2%提升到56%,这些结果都是在64核到4096核的比对上作出的。

    在强可扩展性的测试中(即测试规模一定,通过增加内核数来提升性能,缩减计算时间),我们可以看出IBM蓝色基因、曙光5000A以及联想深腾7000之间的性能比较。这里采用了测试规模是192*192*128的矩阵,显而易见的是随着核数的增多,三台超级计算机所用的计算时间都在减少,但是在核数超过2048之后速度趋于平缓。

    另一方面,深腾7000表现突出,除了64核时所用时间稍稍长于曙光5000A,其他情况下均要快一些,而IBM蓝色基因由于采用的是低频率(只有700MHz)的32位Power双核处理器,因此总体计算性能上始终要逊于两台国产超算。

     对于并行效率,如果以64核下的并行效率为基准的话,则三台超算普遍在256核至1024核之间是当前算法并行效率最高的状态。其中深腾7000异军突起,在核数为512时以181%的大幅度并行效率领先于蓝色基因的106%和曙光5000A的100%,并且在128核至1024核之间均保持着并行效率领先的优势——让人惊讶于其并行计算架构的优化和对“地球外核热流动数值模拟”算法的强势。

    平均单核浮点性能方面,IBM蓝色基因仍然由于其处理器性能关系垫底,曙光5000A也仍然是在64核时占据领先位置,浮点性能接近100Mflops,而深腾7000则在核数大于128时抢回了头号交椅,并且在512~1024核时达到120Mflops的平均单核浮点性能的峰值。效率方面,在平均性能垫底的IBM蓝色基因得益于其RISC架构,拥有3.7~4.5%的高效优势;而曙光5000A得益于巴塞罗那的直连架构以0.9~1.3%屈居第二;深腾7000虽然平均单核浮点性能领先,但是整体浮点效率却只有0.6~1.0%,相信如果是采用了最新的至强5500的话,会号上很多。

    2、全球大气浅水波数值模拟

    如前所述,根据美国Sanda实验室2009年的报告,全球大气浅水波数值模拟最难的部分是大气模型的计算。这里采用的主要方法是计算二维球面区域的Cubed-Sphere网格,求解非线性方程组NKS。据介绍,该求解需要用到FGMRES迭代法,预设RAS区域分解条件子,子区域求解器是LU/ILU(2)。

    对Cubed-sphere网格有兴趣的朋友可以看一下下面这张PPT所表示的球面浅水波方程——这是本算法的理论模型。其正确性验证依靠的是Test Case-5锥形山进行简单的检测。

    与问题一类似,显示强可扩展性的评测。可以看出在1024*1024*6的矩阵模型下(这是一个惊人的巨型矩阵),随着处理器核数的提升,计算时间也明显下降——仔细看一看,比第一个问题下降的要快一些,可见这里的非线性方程组的求解算法要好一些。在处理器核数小于768时,曙光5000A所用时间最短——笔者分析这主要是由于计算矩阵规模太大,对内存的依赖性很强,因而曙光5000A的AMD“巴塞罗那”处理器直连架构拥有巨大优势。而紧紧咬住彼此成绩的是深腾7000和IBM 蓝色基因,蓝色基因低频率的劣势被高效率RISC架构带来的性能提升所弥补,仅仅落后深腾7000几秒成绩。

    在处理器核数大于1536时,深腾7000的累计的处理器优势已经可以弥补其内存直连上的与曙光5000A产生的瓶颈,故而开始逆转结果,又一次上演了问题一中的测试结果。之后更多核的测试,由于时间关系曙光5000A和深腾7000并没有参与,但从IBM蓝色基因的表现来看,本算法在3072核时效率仍然很高,到6144核时达到瓶颈,往后到7000核以上性能提升有限。

    并行效率方面,同样是计算刚才的矩阵,以192核数时三台超级计算机的效率为100%。深腾7000当然不让的仍然是效率王,在核数增加时,其并行效率是唯一没有衰减,反而上升的巨型机。而通过1536核时曙光5000A只有79%的效率,可以看出前面为何深腾7000会在强可扩展性上超过曙光5000A——对手的效率降低了,抵消掉了内存直连架构的优势,而自己的并行效率提升为原先的103%,自然有所超越。

    平均单核浮点性能,曙光5000A依然凭借其直连优势在小于768核时保持领先,而且核数越少优势越明显(在192核时拥有140Mflops的平均单核浮点性能)。而随着核数增多,在768核以上时,深腾7000的单核浮点性能就已经超过曙光5000A,而蓝色基因一直维持在130Mflops的水平线上,其浮点效率也是强悍的8.3~9.1%,曙光5000A第二,为1.5~2.0%,深腾7000仍然与问题一中的结果一样垫底,只有1.1~1.3%。

    与问题一不同的地方在于这里还测试了三台超算的弱可扩展性(即在固定每个处理器内核的计算规模的前提下,通过增加核数来看系统整体的效率)。可以看出,以1*1*6个核心为单位,计算128*128*6的矩阵为基本计算规模来看,当处理器核数与计算规模同比例翻倍的时候,其求解时间有一个线性增加的过程。

    从求解时间来看,在核数小于864时,IBM蓝色基因的弱可扩展性明显要低,其求解时间要大于曙光5000A和深腾7000,而深腾7000在内核数大于24的同比计算规模递增中,平均单核浮点性能的优势充分体现,所用时间越来越短。而曙光5000A则在核数大于1536时,终于因为自身平均效率的过分降低而被IBM蓝色基因迎头赶上。本统计中蓝色基因每节点只用了一半的处理器内核(双核中的一个核),而曙光5000A每节点16个内核中的8个,深腾7000则使用了单个节点中的全部8个内核。

    在弱可扩展性的平均单核浮点性能方面,可以看出RISC架构的优势在于随着计算规模和核数的同比递增,其单核浮点性能并没有过多的衰减——意即其系统均衡相对很好。而深腾7000与曙光5000A在核数与计算规模较小时的单核浮点性能很高,但是随着系统规模上升,到864核以上时,平均单核浮点性能就已经下降到与IBM 蓝色基因同一水平,甚至被反超。由此,可以发现IBM蓝色基因的浮点效率颇高,为16.6~21.5%,而曙光5000A的效率在4.7~7.7%左右,深腾7000仍然以1.9~3.7%的浮点效率垫底。

    小结:

    综合以上两大问题的评测,我们可以对比三台超级计算机的强可扩展性数据:首先是并行效率方面,深腾7000以103~159%的绝对优势位居榜首(这主要得益于英特尔至强处理器的浮点运算性能),而曙光5000A成绩在67%~79%之间与IBM蓝色基因64%~72%的成绩想去不远,互有胜负(这也与算法有关系)。浮点效率方面则是基于RISC处理器的IBM蓝色基因拥有绝对优势,而两款x86处理器的超级计算机则普遍效率不高。

    弱可扩展性方面,仍然是IBM蓝色基因的成绩稳定,处理器内核数与计算规模同比增长从6~1944核的区间内浮点效率可以达到16.6~21.5%,而曙光5000A在6至216核时也可以达到4.7~7.7%,深腾7000在6~1536核时浮点效率为1.9~3.7%。

    笔者在分析这些数据时发现,以上三台超级计算机分别采用了不同架构的处理器:分别是采用了直连架构的AMD巴塞罗那,采用了酷睿架构的英特尔至强,以及采用了RISC架构的IBM Power。从处理器特性来看,RISC架构天生的浮点计算优势使得IBM Power处理器在这一领域拥有先天优势,因而蓝色基因屡战屡胜。而另一方面,AMD的直连架构使得曙光5000A在问题二这类举行矩阵的内存敏感型运算中占到先机。同样也是在这一问题中,深腾7000凭借架构优势和系统稳定性,后来居上,打败了直连架构的先天优势,使我们明确了在大规模的高性能计算中,系统架构的效率需要均衡和稳定,否则无法胜任上千核的运算。

    另外,深腾7000在并行效率方面的强势令人眼前一亮,如此大幅度的领先同类超算平台,可以归结于是系统设计的功劳,另一方面也说明了至强处理器的高性能计算优势——当然,若是换为最新的至强5500应该会取得更加明显的成绩——尤其是在浮点效率和内存敏感型应用方面。

0
相关文章