在2010年11月16日举办的SC10大会上,当“天河一号A”以2.57Pflop/s的Linpack性能夺取全球最快超级计算机Top500排行榜的冠军时,许多人都无法相信自己的眼睛,一个基于“CPU+GPU”异构计算的“怪胎”打败了所有传统CPU计算的超级计算机?有人对天河一号A所采用的“CPU+GPU”架构呲之以鼻,认为这样的架构在实际生产应用中并没有太的可行性,主要理由是异构编程、应用移植等方面仍存在诸多难题。
时隔“天河一号A”夺冠已经超过两年的时间,这两年期间,“天河一号A”的CPU+GPU的架构应用情况究竟如何?它是如何通过事实来向全世界证明“CPU+GPU”的可行性?近日,DOSERV记者来到天津超算中心,采访了天津超算中心主任刘光明,以及NVIDIA公司PSG全球副总裁Shanker Trivedi,就“CPU+GPU”的应用现状和未来发展计划进行交流。
“CPU+GPU”:解决超算中心性能与能耗的矛盾
作为世界上首个把GPU加速器与通用CPU计算相结合的超级计算机,“天河一号A”与“CPU+GPU“架构的渊源其实早在2005年就开始了。
刘光明主任介绍道,当时,超级计算机的已经达到了千万亿级或者更高级别,用通用CPU计算机去做的话规模和功耗都太大,而且使用起来不一定很好。一个非常典型的例子,2011年下半年,美国IBM承担的一个美国计算机的研究项目——完全通用CPU的方法去构建最快计算机,结果由于研制费用高、机器占地规模和功耗大导致项目流产了。
针对CPU计算在HPC领域的瓶颈,国防科技大学于2005年到2007年之间研究了如何将用通用CPU与GPU加速器结合起来,并加速高性能计算的应用。当时国防科大自己做了一个流处理器,结合起来之后发现有很大一类高性能计算机的应用,比如流体力学、气动力学、FFT、CFD,还有很多算法都适合这种结构,非常适用于解决复杂的数学问题。于是,2009年的天河一号第一期就选用了AMD的GPU来替代当时国防科技大学自己研究的流处理器,这就是当时排名是世界第五,亚洲第一的“天河一号”。
2010年开始,天津超算中心决定使用NVIDIA Tesla 2050。刘光明表示,之所以将GPU换成了NVIDIA Tesla 2050,主要是因为AMD的GPU没有ECC校验,而Tesla有ECC校验。与此同时,将天河一号的高速互联系统换成了自主研发的银河的高速互联,操作系统也换成了自己强化的操作系统,并且在升级之后又做了一些优化,这样就诞生了2010年11月Top500排行榜的冠军——“天河一号A”。凭着“CPU+GPU异构融合体系结构、64位多核多线程自主飞腾1000CPU,以及自主高速互联通信技术”等三大技术创新,“天河一号A”给全世界留下了深刻的印象。也是从那时开始,CPU+GPU异构融合体系结构作为一个全新的HPC体系结构开始受到世界范围内的关注。
当时,国际上对于天河一号A所采用的“CPU+GPU”异构融合计算体系存在诸多争议,一些国家认为这样的计算架构对于实际的应用环境价值不大,主要原因是基于异构混合架构的编程难度太大,而且原有的应用移植也比较困难,所以就算Linpack测试性能再好,对于实际生产并没有多大的价值。
而事实上,在两年多以后的今天,“CPU+GPU”异构融合架构体系已经被越来越多的超级计算机所采用,像美国高性能超算中心、德国超算中心等这些国家或地区最大的系统,都纷纷的采用了GPU加速并行计算。人们对于“CPU+GPU”异构计算的态度的转变,与“天河一号A”在“CPU+GPU”架构的应用方面令人瞩目的成就是不可分割的。
刘光明主任介绍道,天河一号A系统分成两部分,一部分是Intel CPU加上NVIDIA GPU构成了一个新的系统,这个系统占整个天河系统的7/8,另外1/8的部分是用自主研发的CPU——飞腾1000,这套系统主要是进行实验优化的环境,有很多科技计算的程序和应用都在上面做测试。
“目前,基于‘天河一号A’的异构结构的几个典型的应用情况还是很不错的”,刘光明向记者分享了在异构架构应用方面的经验和感触,“以最典型的石油勘探数据处理,经过天河一号A,已经完成了具有自主知识产权的石油三维历史偏移。石油勘探数据处理软件过去是掌握在国外公司手上,这对于我们来讲是很不利的,一方面价格很高,另一方面,有的东西就算有钱也不卖给你。从2011年年初开始,基于‘天河一号A’跟东方物理进行合作,用了两年的时间,将该软件从通用CPU的版本上升到CPU+GPU的版本,整体性能提升了大概六倍。同时在这个基础上又将磁盘的数据处理系统变成一个基于内存的数据系统。”
除此之外,现在的气动力学、大飞机的仿真,还有一些源的分析等应用都是基于CPU+GPU的异构计算体系,现在应用的效果都不错。
除了在性能方面的提升之外,CPU+GPU架构带来的能效的提升也是非常可观的,据透露,整个天河一号A系统的平均利用率达到40%,而电费成本每年大约在1500万到2000万人民币之间,这样的能效相比其他的超算中心而言大有提升。
NVIDIA:基于开普勒架构的HPC应用数数量将突破一千
“CPU+GPU”架构在一定程度上缓解了超算中心的计算能力与能耗之间的矛盾,。然而,正如本文开篇所提到的,如何把这强大的计算能力转化成生产力才是超算中心最应该关注的?毕竟,对于一个国家而言,HPC产业发展的目的远远不止那个峰值计算的数值或者排行榜上的名次。这就意味着需要把强大的计算能力应用到各行各业的实际应用当中,对于“CPU+GPU”异构架构而言,就需要通过更多的应用程序,才能把这强大的计算能力传递到应用领域。
作为“CPU+GPU”异构架构的最主要的推动者之一,NVIDIA一直在努力推动异构编程,并且取得了一定的成绩。Shanker 表示,现在有300个以上应用软件支持开普勒架构,一到两年内,这个数字将会突破1000个,各种各样的解决科学问题的工具都可以在CPU+GPU的异构体系上运行。
Shanker介绍道,在CPU+GPU的异构架构上进行编程主要有三种方式:对于存在了很多年的应用,可以采用OpenACC的开放标准进行小小的改动,只需要通过一些标记代码,就可以将传统的应用很快速地转移到CPU+GPU的架构上来运行。比如美国能源实验室的S3D核聚变应用程序有100万行代码,后来只改了400行,然后通过编译器编译,就签到了CPU+GPU的混合计算平台上,并取得了六倍的速度提升。
第二种方法,对于一些需要重头开始写的应用程序,NVIDIA建议用CUDA GPU并行编程的方法, CUDA实际上就是把传统的C语言进行一些语法方法的扩展,写程序的方法不变,重新写出来的程序效率可以大大的提升。
最后一种方法,就是针对一些比较规范的程序,可以调用库函数。NVIDIA提供了很多系统级的基于GPU的库函数,还有很多是大学、科研机构提供的。
联合实验室推动产业转型升级
为了进一步推动在CPU+GPU的异构计算的应用,2013年1月17日,天津超算中心和NVIDIA宣布建立联合实验室。联合实验室将依托“天河一号A”超级计算机,主要研究任务包括两个方面:一个方面就是在异构结构上再优化,用NVIDIA的一些新的软件,提升用户使用的效率。第二个方面,基于天河一号A新的通信处理技术、硬件和软件,实现云计算、物联网,包括智慧城市和三网合一等。
刘光明表示,跟有很强优势的国外的公司合作,目的就是实现强强结合,将国外的技术优势与我们自身的优势相结合,达到双赢,最终目的是推动我们国家向新的生产方式转变。
此次联合实验室的成立,标志着我国HPC产业从硬件资源的升级转变为软件和人才资源的升级,作为“CPU+GPU”异构计算的重要推动者,NVIDIA也将继续在推动天津超算中心未来的发展和应用中扮演重要的角色。
后记:随着环境问题不断加剧,绿色节能已经成为当今全球范围内最受关注话题之一,“CPU+GPU”异构计算的架构将会在未来的HPC领域更大的空间,当前,异构计算生态系统正在不断成熟壮大,越来越多的组织和机构加入到异构计算的队伍,基于“CPU+GPU”架构的应用不断丰富,全球范围内的超算中心或将迎来一个异构计算的新时代。