您当前的位置:首页资讯计算机正文

超级计算机榜单或面临洗牌

放大字体  缩小字体 发布日期:2016-05-14 浏览次数:64
超级计算机榜单或面临洗牌

前几天我们针对各种能够对运算能力进行加速的协处理器进行了简单解析,其中讲到类似CUDA加速这样的方法,在性能描述方面是有一些地方需要商榷的。详情可见《理性解析主流协处理器:百倍效能从何处来》。其实文中还有一个值得关注的焦点,就是协处理器的使用情况。类似TESLA这样的产品,为超算额外提供了规模巨大的ALU以全面增强运算能力。但是这些运算能力该如何使用以及实际使用情况如何?最近传出了TOP500标准更新的信息,我们不妨将两个问题结合一下,从加速计算硬件当前的使用情况来解析TOP500规范。
  
  Linpack统治地位如何得来
  
  TOP500是全球的超级计算机榜单,并且定期更新,依据Linpack性能测试得分对超级计算机进行排名。当前这个领域最重要的新闻就是从下次排榜开始,将增加HPCG(高度共轭梯度基准测试)与现有的HPL(高度并行计算基准测试,也就是我们耳熟能详的Linpack)标准同时使用,以此来更科学的衡量超算性能。
  
  作为衡量性能的工具,Linpack已经被使用了30年,最新一版是2008年更新的HPL2.0。长久以来Linpack最成功的地方就在于它的高斯消元解线性方程法能够很好的调动起超级计算机上动辄成千上万个运算核心协同工作,因此Linpack至今无人能撼动。
  
  在30年前,乃至在10年前,Linpack的这套衡量标准都是可行的。因为超级计算机的架构相对简单,一套硬件系统内部几乎只有一种类型的处理器,可以简单的认为一台超算就是成千上万个一模一样的处理器搭建出来的,这些处理器的频率、指令集等关键指标完全相同。也就是说当时多线程软件在超算上的运行情况与Linpack是几乎一致的,因此用Linpack衡量超算性能并没有受到太多质疑,所谓的质疑无非也就是Linpack有些理想化,因为应用程序一下子调动不起来那么多处理器,而且也不是所有的代码都支持并行处理。
  
  在现代,超算在寻求性能提升的过程中找到了一条捷径,就是堆积ALU。在PC领域由于一些偶然的图形处理需求,PC显卡不单单承担贴图任务,还不断承担越来越重的数学运算压力以解放CPU,致使用户对图形芯片的运算性能需求越来越高。这种需求终于催生质变,在硬件领域衍生出来了类似CUDA或者STREAM这样的“流处理器”架构,并衍生出来了堆积ALU的加速运算硬件,与超算的诉求一拍即合。同时,由于芯片制造技术的发展,一些实力较强的企业将自家的高性能处理器与Intel、AMD平台相结合,比如中国的超算就引入了龙芯、飞腾、申威等自主知识产权的处理器。这样就形成了由中央处理器、加速运算器、第三方处理器组成的多重异构架构的超级计算机。
  
  在TOP500榜单里排名靠前的超级计算机都是技术先驱,他们率先引入类似TESLA这样的加速运算器,通过双重异构比拼性能,随后又率先将更多具备独特功能的芯片引入超级计算机中,形成多重异构。在这样的情况下,Linpack依然如故,调动起了全部的运算资源进行累加,将所有能够参与运算的芯片的总运算能力原原本本的呈现在大众面前。但这次,超算用户不答应了。
  
  走上邪路的超级计算机
  
  如果用修路来比喻这种变化的话。不妨干脆就全用交通情况来描述超级计算机。在北京的居民吐槽最多的是西直门立交桥和四元桥立交桥,至今如此。这两座立交桥看似科学的分流的体系只在理论上行得通,实际使用中有的通道空闲有的通道拥堵,车辆根据方向类型各行其道的理想设计并没有实现。异构计算也存在这样的问题,有的通路(CPU)依然长期满载,有的通路(GPU)长期空闲。原因有很多,比如司机(程序员)不熟悉道路规则,比如道路方向与高峰车流方向不完全兼容,比如容易迷路等等。
  
  超级计算机的架构演变就是这样一种情景。早期的超算就如同普通主干道。可能有不同速度、不同类型、不同去向的车辆通过,但是我们都只有一种主干道。通行的效率就取决于主干道的最低限速和道路数量,是一条还是十条还是五十条。尽管有时候只是少量汽车通行。但只要一股脑的把车辆引导到道路上快速通过,车辆本身通行都是没什么障碍的。
  
  但这种方法可能进化的速度不够快,而且没有那么多空间来建设主干道,面对不断复杂的通行需求,设计师便开始另辟蹊径。经过观察,设计师们发现了规律,将车辆按照去向、大小、速度等特征进行归类。于是专门进行了定制化设计,在保留主干道的基础上引入立体交通对车辆分流,又产生了大量的大货车专用道、小货车专用道、自行车专用道等等的辅助道路。但立交桥的通行又都需要专门的调度来完成,如果调度不好,可能会造成拥堵,可能会没有被使用。总之在理想情况下的通行速度会变快,但是在实际使用中要面对很复杂的情况,比如要对车辆类型和去向要做区分和引导,要及时监控路况等等。
  
  当道路的类型不止一种,并且对车辆的调度也变得非常复杂之后,Linpack依然我行我素,将所有道路的最理想运力统计出来,呈现在我们面前,并以此作为依据列出排行榜,成为设计水平好坏的依据。久而久之,道路设计师发现像上面那样开拓各种专线道路比大规模铺设主干道更省事,而且同样能够大大提高Linpack统计分数。在这种现状的驱动下,设计师开始用各种方法疯狂的增大运输能力理论值而不考虑是否实用,导致道路的理论运输能力与实际运力开始脱节。同样,在超算的发展规划上,如今已经被Linpack成绩引导走上了一条邪路,那就是只估算理想情况该如何,却越来越少考虑实际情况。
  
  我们可以针对不同的道路设立不同的行走规则,规定每种车只能从指定的道路走。但如果司机不能迅速理解规则并遵照规则执行,导致调度之后还不如直接一股脑让车从主干道走过去快,那立体交通的设计就都变得得不偿失了。在当今的信息学上,对这种现象也已经有了比较深入的研究。信息学研究的重点就在于如何能够让规则变得简单,规则简单那么整个道路系统的通行效率就高。描述规则复杂度的单位叫做信息熵,由信息论之父克劳德·艾尔伍德·香农(Claude Elwood Shannon,1916-2001)提出,在本页以交通做的举例中,有效调度全部资源的一个底线就是调度的信息熵要小于或者等于不调度的信息熵,否则说明调度之后更浪费时间,还不如全老老实实排队从主干道上走。
  
  异构计算难以驾驭催生标准变革
  
  硬件是可以用经费堆砌的,但软件、算法、规则等等无法在短时间内进行革新。超算领域软硬件发展极不平衡,现在的实际情况是信息熵方面的研究远远滞后于硬件的发展,并行计算以及异构计算的信息熵在不断升高,导致超级计算机硬件性能根本无法充分发挥,甚至完全无法使用。这一点在TOP500的测试上已经有所体现了,Linpack标准的创始人也在关注超算理论性能与实际脱节的问题。田纳西大学诺克斯维尔分校教授Jack Dongarra是当前超算TOP500新标准的发起者,并且也是Linpack标准的创始人,他在采访中也对现阶段Linpack的客观性提出了质疑,并以此前的超算冠军TITAN举例子。
  
  TITAN拥有18688个节点,每个节点有1个16核心Opteron处理器、32GB内存和一个NVIDIA TESLA K20运算加速卡。TITAN登榜的成绩是按照HPL标准用Linpack测试得出的。在Linpack测试中,Opteron处理器仅发挥了部分效能,所有的浮点计算都是依靠TESLA K20完成的。但在实际的使用中,像Linpack这样使用超算运算资源的案例极少,绝大多数情况下应用程序根本无法使用TESLA K20,只使用CPU的运算资源,并且为了减少出错概率以及为不适合异构计算的应用软件加速,还会选择性的将TESLA K20强行关闭。
  
  显然,在当今异构计算大行其道的时代,Linpack一成不变的测试方法虽然能够反映出超级计算机的最大运算性能,但是与实际使用情况已经有了非常大的差距。至于不用异构计算做加速的原因,主要是受制于开发难度。“运行程序的时候10小时和15小时没啥区别,都是睡一觉就出来结果,但是为了缩短的几个小时,前期写代码要增加几倍的工作量,还要预防一些不可预测的错误,实在是得不偿失”——一位做开发的朋友如此总结。
  
  因此在这样的情况下,既然相应的软件开发环境短时间内难以转变,那么包括超级计算机在内的所有异构体系,其实际性能表现如何就必须重新审视,甚至需要重新制定一套更科学、更能体现实际性能水平的衡量标准来进行性能评估。这样一方面可以防止新超算借助还并不实用的异构体系刷榜,另一方面也便于用户选择适合的设备——在新规范下使用HPL和HPCG两种标准测试出两套成绩,如果偏重于异构计算可以多参考HPL成绩,如果寻求稳妥可以多参考HPCG成绩。
  
  不管怎么样,这都意味着TOP500的下次榜单更新极为重要,甚至可能会影响到很多超级计算机的排名。异构计算让超级计算机的性能在短时间内突飞猛进,然而短短几年之后我们就发现,异构计算造出来的是一只只难以驯服的高性能怪兽,在有能力充分挖掘其潜力之前,我们必须改变现有的标准,以更科学的方法衡量这些怪兽目前能发挥出的能量有多少。

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!

0条 [查看全部]  相关评论