【IT168 专稿】11月26日,2009年全国高性能算法软件研究开发研讨会,暨中国软件行业协会数学软件分会理事会年会在京召开。来自中科院软件所和高性能计算科研领域的多位资深专家在大会上做了有关报告和学术成果展示。大会颁发了2009年中国HPC Top 100排行榜,并选出了年度系统份额总冠军(曙光)和年度性能份额总冠军(国防科技大学:天河一号)。
本次大会热点众多,我们已经报道的有:GPU加速为主 揭秘天河一号两大系统构成 、Nvidia展示信心 超级计算未来属于GPU 、09年HPC算法研讨会开幕 国内Top100颁奖
与会专家普遍认为高性能计算目前的主要问题在于应用面较窄,与领先国家动辄数千颗CPU就一项工程进行运算的应用来比,国内目前的应用主要还集中在百颗处理器的规模。有专家认为,我国的高性能计算正在逐渐走向成熟,相比起来硬件更容易达到国际一流水平,而相关应用跟不上来一方面是算法开发的难度,另一方面是不少企业还在用较原始的方式做科研和设计。
中科院软件所 杨超助理研究员
目前成规模成体系的使用高性能计算的大型应用案例主要是能源企业和大气、地质等地球物理计算,而更多的则是以科研院校为主的科学计算:如天体物理,核物理等。我们以前报道过与石油勘探有关的高性能计算案例——“GPU计算:在石油勘探领域里的革命、英特尔高性能计算 加速中国石油勘探进程”。本次大会上,来自中科院软件所的杨超助理研究员就地球物理计算的两个典型问题的算法优化在三台超级计算机上跑了有关测试——分别是IBM的“蓝色基因”(BlueGene/L),曙光的“魔方”(曙光5000A),以及联想的深腾7000。
一、三台巨型机测试平台与测试内容的简要介绍
这几乎是国内最难得的同台竞技,首先是曙光5000A,这款代号“魔方”的机器部署在上海超算中心,其处理器为AMD“巴塞罗那”四核心处理器,主频为1.9GHz。深腾7000采用的是英特尔至强E5450四核心处理器,主频在3.0GHz。而IBM蓝色基因则采用的是IBM PowerPC440双核处理器,主频只有700MHz。除了IBM Power处理器是32位RISC架构外,AMD巴塞罗那和英特尔的至强E5450都采用的是EMT64位架构——这在一些内存敏感型计算中要更有利——和每CPU内存地址线的多少有关。
网络互连方面一直都是超级计算机的研究重点。因为超级计算机在众多处理器协同计算时,对多节点之间的网络延迟十分敏感——试想,在处理器高速计算时,需要与另一个机柜中的某个处理器交换数据,这需要网络维持一个什么样的速度和流畅度才能保证没有延迟?因此,在曙光5000A和深腾7000中我们看到的解决方案是目前开始流行的Infiniband网络,而IBM则使用的是比Mesh网络更加规整化的Torus网络——其并行网络效率取决与通信矩阵的大小(我们可以看到这台蓝色基因在6*6的矩阵内可以达到1.4Gbps的通信速率,而在3*3的分支矩阵中速率可以达到2.4Gbps)。
所做的测试主要基于两个地球物理的高性能计算数值模拟。这里要介绍一下数值模拟的意思,在很多时候科学研究会遇到瓶颈,如某个数学方程无法求解或是边缘条件太过复杂,这时候就需要数值模拟以超大规模的环境变量和参数代入进行反复的演算,在一定精度范围内取得该方程或是模型的近似解。
这么说可能很难理解,举个例子:有个选择题:x+1=0,问x等于多少。正面计算的结果是逆向求解,得出x=-1。而采用代入法,则可以忽略计算过程(注意,这很关键),只需要代入这个选择题给的几个解,看看哪个可以使等式成立,即可得出答案。相信以前上学时,这种代入法求解的“简便”方法已经被很多学生实践过了。科学计算在遇到无法求解的问题时,采用的也是代入法,只不过规模非常大, 大到难以想象,也难以用人脑计算。
以下两个问题是杨超助理研究员挑选出来进行测试的。第一个问题是:“地球外核热流动数值的模拟”,这个模拟的原始算法是由上海天文台的李立刚研究院研制的,主要是基于Aztec的实现。而这里杨超助理研究员用128*128*64网格的计算规模来考察这三台超级计算机的并行效率与并行可扩展性(主要是强可扩展性,即计算规模一定,通过增加内核数使得计算效率提升)。
可以看出,在蓝色基因的原始测试数据中,随着处理器数量的增多(最多到4096核),计算时间虽然在下降,但是下降趋势逐渐减缓,从64核到4096核的使用,并行效率仅为8.2%,并没有出现预期的大幅度性能提升。一会儿我们来看看在算法改进之后,三台超级计算机同台竞技的结果。
下面是第二个测试:“全球大气浅水波数值模拟”,该模拟主要是综合了有关大气、海洋、陆地、冰川等资料用以研究气候的计算模型。目前海洋模型的算法已经可做到很高的扩展性(报告中称已经可以做到千万亿次级别),而大气模型是制约整体模拟的瓶颈——这主要牵扯到二位球面的Cubed-Sphere网格的求解。
通过对以上两个问题的算法研究和实际在三台超级计算机中运行的结果对比,我们不但可以发现软件算法对高性能计算的直接影响,还可以对比出同一算法在不同规模下的效率,以及在统一规模大小的情况下,这三个超级计算机的并行效率,浮点效率。