比特观察:超级计算机的百亿亿次征途刀片服务器

2011-11-17    来源:比特网    编辑:zhanggl
10月底,最新一期中国超级计算机Top100榜单公布,由国防科技大学研制的天河一号超级计算机以4700万亿次峰值性能、2566万亿次Linpack实测性能摘得中国超算桂冠。虽然创造了新的中国纪

  10月底,最新一期中国超级计算机Top100榜单公布,由国防科技大学研制的“天河一号”超级计算机以4700万亿次峰值性能、2566万亿次Linpack实测性能摘得中国超算桂冠。虽然创造了新的中国纪录,“天河一号”并非是全球最快的计算机,在今年6月最新一期全球超级计算机Top500榜单上,来自日本富士通的“K”超级计算机以8.16千万亿次浮点运算超越天河一号排名首位;近日,“K”再次提速,计算峰值达到了10.51PFlops(千万亿次每秒),也就是每秒钟1.051亿亿次浮点计算,这是计算机首次突破亿亿次计算大关。

  HPC发展回顾

  从千万亿次到亿亿次,人类的计算能力再度迈上了一个新的台阶,让我们来回顾一下这个过程:在2008年下半年公布的全球超级计算机Top500榜单中,IBM为美国能源部Los Alamos国家实验室建造的“Roadrunner走鹃”计算机系统运算速度达到了1.026 Pflop/s(千万亿次/秒),这是首次计算峰值突破千万亿次。随后,这个曾被认为高不可攀的门槛一次次被打破,如今,全球Top500前十套超算系统全部达到千万亿次级别,而中国超算Top100前六套系统均超过了千万亿次。

  从2008年到2011年,HPC的计算能力提升十倍,曾经遥不可攀的一个高度,只不过在短短三年内成为现实。我们将目光看的再远一点,1998年,HPC首次突破万亿次,到2008年达到千万亿次,十年间HPC计算能力提高三个数量级。那么,在下一个十年,人类的计算目标是什么?是否能够实现从亿亿次、十亿亿次、到百亿亿次的跨越?百亿亿次,看上去像是不可能完成的任务,不过从HPC进化史来看,一个个不可能都已经成为现实。如今,HPC业界已经将百亿亿次列为下一个奋斗目标,包括英特尔、NVIDIA等芯片厂商,以及诸多服务器系统厂商,也开始了向百亿亿次迈进的脚步。

  两种方式向百亿亿次HPC进发

  HPC的发展好像也在遵从的一条摩尔定律,虽然决定HPC计算能力的因素有很多,比如系统架构、互连架构、应用软件等等,但不能否认的,处理器技术的发展在推动着HPC浮点计算能力的一次次突破,而英特尔和NVIDIA这两个芯片厂商,在未来HPC发展中将扮演重要角色。条条大路通罗马,虽然实现百亿亿次并不简单,但达成的方式也未必只有一条,英特尔和NV所走的正是两条不同的道路。

  英特尔在HPC中已经具备统治力,在今年六月发布的全球Top500榜单中,上榜系统中有77.4%采用了英特尔至强处理器,英特尔对百亿亿次的实现抱有信心,据英特尔预测,到2015年,全球最快超级计算机将达到每秒十亿亿次浮点运算;2018年时,超级计算机将越过每秒百亿亿次浮点计算的标杆;而到2011至2020这个10年期的末期时,地球上最快的计算机的性能则有望超过每秒4百亿亿次浮点计算。

  虽然至强已经在全球超算中广泛应用,但英特尔并不认为当前的处理器架构适合百亿亿次超算的构建,毕竟HPC并非是简单的硬件堆砌,百亿亿次也并不是“Exascale=Petascale*1000”那样简单,靠大规模节点堆砌的百亿亿次HPC在功耗、占地和效率上,都是让人无法承受的。于是,英特尔独辟蹊径,在2010年国际超级计算机大会上发布了集成众核架构(MIC),英特尔认为,百亿亿次将带来体系结构从单一架构走向混合架构,处理器芯片要从通用多核与专用多核结合。

  MIC正是一种专用的多核架构,是在现有的至强处理器基础上发展而来,专门为高性能计算而设计。首款产品代号“Knights Corner”,计划采用22nm 3-D Tri-Gate三栅极晶体管工艺制造,核心数量超过50个。另外,英特尔目前已经推出了专为MIC架构设计的软件开发平台“Knights Ferry”,核心协处理器代号“Auburn Isle”,拥有最多32个核心、128个线程和完全一致性缓存,支持512-bit SIMD,搭配最多2GB GDDR5显存。能够看出,这种MIC众核架构的优势首先在于具有更小的内核和硬件线程,以及更宽的矢量单元,特别适合并行的超算应用。另外,MIC架构易于扩展,并且更加便于应用开发,因为它完全基于x86架构,这样能够更加容易的进行应用程序标称,而为了为了解决并行编程的问题,MIC采用在至强处理期的开发平台上进行扩展,从而简化了应用程序的迁移工作。

  为了用MIC实现百亿亿次目标,英特尔已经联合多家合作伙伴联合开发,比如德国尤利希研究中心、德国莱布尼茨超级计算中心(LRZ)、欧洲核子研究中心(CERN)等,如今已经具备了初步成果。另外,英特尔也积极联合国内厂商,比如在今年9月联合浪潮成立中国并行计算联合实验室,旨在推动中国百亿亿次超级计算机的发展。虽然实现百亿亿次并非一蹴而就,但英特尔MIC众核架构已经找到了一种可行的方法。不过,毕竟从亿亿次到百亿亿次,还要跨越三个数量级,其中要遇到怎样的困难,犹未可知。

  英特尔通向百亿亿次走的是一条完全基于CPU的道路,而另一方面,NVIDIA所倡导的,是“CPU+GPU”的混合架构路线,这也是近年来在超级计算机中出现的另一种方案。最为典型的例子,位居我国超算首位的“天河一号”就是采用了CPU+GPU的混合架构,而在全球超算榜单中,大部分突破千万亿次计算能力的系统都是采用了异构架构。

  超级计算机可以说是为并行计算而生,但是传统CPU并非专为并行计算而设计,它更擅长串行方式任务,单纯用CPU实现更高的计算能力需要大量堆砌CPU,在构建更大型的HPC会出现能耗飙升、效率低下的瓶颈;GPU在并行计算上具有先天优势,它具有数以百计的内核,具有强大的浮点运算能力,擅长处理大量相似的数据,因而更适合高性能计算应用。某种意义上说,英特尔的集成众核MIC架构,也是借鉴了GPU的设计思想,是一种能更好执行并行运算、集成了众多x86内核的CPU架构。NVIDIA表示,CPU+GPU的异构架构要比单纯的CPU架构更加节能,这对构建HPC来说具有非常现实的意义。

  和英特尔一样,NVIDIA也将目光投向了百亿亿次,2010年8月,NVIDIA获得美国国防部下属国防高级研究规划局(DARPA)的2500万美元专款支持,用于联合Cray、橡树岭国家实验室、六所美国顶尖大学共同研究基于GPU的百亿亿次高性能计算技术,项目代号“Echelon”。据了解,Echelon芯片的基本组成单位仍是流处理器,每八个组成一个流式多处理器阵列,双精度浮点性能大约160GFlops(每秒十亿次运算);然后128个SM阵列并排,总计就是1024个流处理器,再辅以八个类似CPU的延迟优化核心,共同组成一颗大规模高性能计算芯片。按照NVIDIA的设计,这样的一颗芯片能够带来20.48TFlops(每秒万亿次运算)的双精度浮点性能,可搭配256GB内存,带宽1.6TB/s。

  有了Echelon,DARPA计划在2018年建成百亿亿次超算的原型系统,有趣的是,这和英特尔提出的MIC架构百亿亿超算预想时间是一样的。

  百亿亿次计算上的编程

  是CPU、还是CPU+GPU,这是目前实现百亿亿次计算的两个主要方向,而这两条不同的道路,也势必会有一场对决。如今,两个阵营各自不乏拥护者,也不乏针锋相对的观点。当然,这也要从两种架构的优缺点谈起,对于异构架构,最大的问题在于编程困难,不具有通用性,如果针对单一应用重新开发新程序会使超算的使用成本很高。对此英特尔认为MIC架构则不具有这些困难,MIC属于x86架构,完全基于IA编程架构,用户可以快速将之前基于至强平台的高性能计算应用迁移到MIC架构上来,免除了重新编程的麻烦。

  而异构的拥护者则不这样认为,在前不久的HPC中国研讨会上,美国橡树岭国家实验室的一位专家曾对笔者坦言:“我更加看好CPU+GPU的异构方式,在编程方面MIC并不比CUDA简单,而在MIC实现百亿亿次的过程中结构还可能会变,这会导致编程更加复杂。而CUDA编程则会越来越广泛,并且异构要更加节能,实现起来更加现实。”除了这位专家,笔者所接触的多位HPC专家都更加看好异构,认为这是一场HPC的新趋势,是未来的发展方向。

  小结

  不管是CPU、还是CPU+GPU,这两者最终谁会更加适合百亿亿次的实现,现在还言之过早,但是却为百亿亿次指明了两条道路,技术的发展不会停止,人类追求计算高峰的脚步也会继续,那么,能够预见的是,未来短短几年将会是HPC快速发展的时期,HPC技术的演进也将更加精彩。

1
3