从高性能到高效能
也许很多人关注得比较多的是运算速度,但在聂华看来,“高效能”更加值得关注,曙光5000A在863计划中的描述也是“高效能计算机”。他解释说,高效能跟强调节能的高能效不一样,它的意思是“高生产力”。那么,什么是高性能计算机的高生产力呢?打个比方说,我们可以通过几万台普通的PC构建成集群,并保证一定的稳定性,达到100万亿次的峰值运算性能,但这个系统只能用来做LINPACK,而对于紧耦合度较大的应用却不适合,所以它不是高效能的系统。
为了保证曙光5000A的高效能,曙光在“多路SMP胖节点、CPU核直连访问内存技术、单CPU核访问大内存、高速互连网络、高效并行文件系统”等方面下了功夫。比如,通过双路刀片系统也同样可以构建起230万亿次的机器,但为了提高效能,曙光5000A采用了4路SMP甚至一部分8路SMP的胖节点,使得适用性和应用度大幅度提高。另外,直连架构也是一种高效能的体现,胖节点单CPU核可以直接内存寻址128GB,这就能满足特殊行业应用的挑战性需求。还有在互连网络方面,曙光5000A采用20GB,延迟小于1.6us的Infiniband高速网络,实现了低延迟、全无阻塞的网络结构。
此外,为了保证曙光5000A的"高可靠性",研发人员采用了全冗余的刀片服务器设计和全冗余的网络设计,使系统不存在单一的故障点,大大提高系统的可用性。
其实,如果仅从性能的角度来看,也许通过FPGA、GPU等加速技术,很容易就能做到百万亿次甚至千万亿次。那为什么曙光5000A中没有大规模使用这种加速技术呢?
对此,聂华解释说,上海超级计算中心可能是世界上最大的通用计算平台。跟国外很多超级计算机主要服务某一种特定应用的模式不同,上海超算是面向整个华东地区的计算服务平台。而FPGA、ClearSpeed、龙芯处理器等作为协处理器,主要是针对某些特定应用的加速。曙光和上海超算曾经针对50种主要的应用做过ClearSpeed加速测试,发现仅对其中三种应用能起到加速作用,而对其他四十多种应用并没有起到加速作用。因此,作为通用计算平台,曙光5000A选择了通用CPU和通用架构,尽管其中会使用一小部分GPU加速节点来做一些图形处理应用,也会少量用到龙芯加速器。“如果国内有千万亿次需求的用户是针对某种特定应用的,用龙芯来构建就不遥远了,用FPGA也可以实现。”
AMD中国区高级技术经理刘文卓补充道,AMD也正在与上海超算就GPGPU的项目进行合作,目前AMD的GPU卡有320个浮点计算单元,性能可以做到1TFLOPS,也就是说,仅仅用1000块这样的GPU卡就可以做到每秒千万亿次浮点运算的性能水平。但问题在于,一方面这种GPU卡是针对独特的应用的,目前AMD与上海超算合作对几百种应用进行扫描测试,以期找到合适的应用领域,另一方面GPU计算要面临非X86环境的问题,应用需要进行重新编译。