科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航



ZDNet>服务器频道>高性能计算-zhiding>从清华大学高性能计算中心看新一代至强处理器的应用

从清华大学高性能计算中心看新一代至强处理器的应用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

近日,笔者与其他媒体的记者有幸参观了清华大学的ChinaGrid计算节点,也是国家863高性能计算机评测中心的机房,与清华大学计算机系副主任、863高性能计算机评测中心副主任陈文光教授就HPC系统的评测,以及新一代清华HPC系统的组建和选型进行了深入的沟通,从而也让我们对HPC系统与应用有了更为深刻的认识。

来源:ZDNet China 2010年10月15日

关键字:高性能计算 英特尔 至强5600 至强7500

近日,笔者与其他媒体的记者有幸参观了清华大学的ChinaGrid计算节点,也是国家863高性能计算机评测中心的机房,与清华大学计算机系副主任、863高性能计算机评测中心副主任陈文光教授就HPC系统的评测,以及新一代清华HPC系统的组建和选型进行了深入的沟通,从而也让我们对HPC系统与应用有了更为深刻的认识。

参观863高性能计算机评测中心

来到机房前面,陈文光教授介绍到,我们这个系统里面用的128个节点,每个节点是两个安腾CPU,2004年建成,是我国当时较早的基于安腾处理器和Infiniband的集群系统,峰值速度大概是1.3 TFLOPS的水平,但是现在硬件的发展很快,这套系统已经相对来讲比较落后了。

目前这套系统的存储,使用了EMC的磁盘阵列,它的存储量差不多是170个TB,而在这套系统的旁边是2008年做的一个刀片机架,那个系统整个用了32个节点,每个节点是四核的双路英特尔至强5400系列处理器,基本上是原来系统性能的两倍,现在已使用了差不多三年的时间,清华大学现在正在计划做一个计算能力达100T的系统,主要服务于清华大学在地球气候变化蛋白质结构、原子分子动力学模拟等方面的研究,也将成为863高性能计算机评测中心的良好的评测环境。

从清华大学高性能计算中心看新一代至强处理器的应用 

清华大学计算机系副主任、863高性能计算机评测中心副主任陈文光教授为记者们介绍清华大学高性能计算中心机房的建设历史与未来的规划

随后,陈教授带领大家走到一些零散的服务器前面指出,这边是我们最近要买的新的系统的一些结点机器,由一些厂商送测。评测的基本方法是:由于不可能把整个的大机器都拿过来测,所以就测它的一个结点,再根据单个结点的性能与网络配置综合考虑,推测大规模并行系统的性能。这两个是存储盘阵,对于存储系统我们也进行相应的测试。测试的程序主要来自于清华大学以后在系统运行的重要应用,我们把程序的规模缩小,让它们能够在单个节点上做测试,通过这个我们来挑选一下到底选什么样的机器。由于购买招办有一定流程,我们的测试结果并不能最后决定买哪个机器,但是我们可以把它的性能指标给它勾画出来,就是说这个机器对我们的应用来说有一个什么样的性能,我们可以在这个招标书中,指定相应的性能分或者性价比得分数,对高性能计算机系统的招标具有很好的指导意义。

针对未来100T的HPC系统的配置,陈教授表示基本上将以至强5600为主,结点数大约在900个左右,另外还将有几个至强7500胖节点。对于未来的HPC节点是刀片为主还是机架为主的问题,陈教授表示,感觉现在肯定刀片是好的,因为刀片系统的外接连线少、可管理性好、功耗方面也有优势。但是有一个问题是我们预算比较有限,所以也不排斥其他的方案,比如1U机架的高密度解决方案。对我们来说最重要的还是计算性能、稳定性、功耗这些东西,后面才是密度这些问题。

不过新的系统肯定会对机房的供电提出更高的要求,因此机房的供电肯定是要改造的,陈教授表示,现在的供电系统只是支持5个T左右的系统,要支持100个T的系统,还需要对供电系统进行较大的改造。另一方面,随着处理器技术的发展,服务器的能效提高很多,从电费上看,现在这套系统的电费每年大概80万元,而新系统则在200至300万元之间。

不过现在的HPC应用是跑在HP的安腾服务器上,未来全面转向x86平台后,应用开发与迁移会不会成为一个难点呢?对此陈教授表示,这个关系不是特别大,因为在学校里面跟商业应用是不太一样,因为学校里面大家的应用都是有源代码的,源代码可能就会重新编一下,这个肯定有优化的过程,这块我们也有中心的老师会和用户一块儿来做这个事。即使是商业软件现在在x86上的支持也比较多,所以这不是一个很大的问题。那么未来有没有考虑过新的安腾服务器呢?陈教授答到,新的安腾刚刚出来,它可能是更加面对这种高可用的服务,这些都是在科学计算方面大家现在的共识是不太可能用安腾的架构来做,还是用x86的架构来做。此外,清华大学是nVidia公司的CUDA卓越中心,nVidia已向清华大学捐赠了部分GPU加速器,将会给整个体统提供另外数十Tflops的单精度计算能力。最后对于新系统的使用,陈教授也谈了一些想法,目前计算中心 的系统还没有分区,是整个一个大区来使用,但未来新的100T的系统会适当的分一些区的,交给各区的用户,由他们管理,他们会根据应用的需求来做这个事情。 另一方面,100T的系统还会考虑做一些针对校外用户的HPC服务。

帮助用户做最合适的选择——863高性能计算机评测中心的运作模式

陈教授表示,我们这个评测中心是04年的时候成立的,国家863计划在2004年决定成立一个评测中心,对863计划支持的高性能计算机进行独立的第三方的评测。中心依托清华大学,联合了很多应用部门和研究部门,比如中国软件行业协会数学软件分会、中科院数学与系统学院、中科院软件所、国家气象局等。

我们做评测实际上我们有两个很重要的思想,第一个思想叫做全过程评测:过去我们去验收一个机器的时候,都是等这个机器做完了,最后去进行验收测试。主要检查机器到底有没有符合合同要求,系统是不是处于一个完好的状态。我们提出全过程评测方法,力图在系统设计、实施、验收和使用各个阶段都使用评测技术,来指导该阶段的工作。

另一个思想称作分层建模方法,用来查找计算机系统各种可能的故障。因为机器一大了以后,有很多潜在的故障点,某些时候故障并不一定反映为系统无法运行,有可能反映到你这个程序能执行,但是速度大大下降。但是如果我们有一个很好的方法,能够预计这个程序在这儿应该执行1分钟,但是我们实际测出来执行10分钟,那系统就可能存在问题吗,这个步骤叫做故障的检测。更进一步,我们怎么知道你这个问题是发生在网络上发生在内存上还是发生在CPU上呢?这就更需要加强更进一步的仔细的测试,所以我们实际的方法就是从底层一步一步的往上走,先去测内存有没有问题,然后再去测你的网络有没有问题,然后再去测其他的,一台机器测没有问题,多台机器合起来做又有没有问题等等是这样去做,这个步骤叫做故障的诊断。

记者:这种是怎么测法?也是拿应用跑吗?

陈教授:拿一些小的基准测试,就是从最底层小的测试值,例如我们用Stream来测带宽,然后我们用Intel的IMB来测点对点的带宽和延迟,然后再去测集合通信的性能,比如说一个广播发送到1000个节点上多长时间,一个通讯要花多长时间,这样一步一步地测试出来,这样就可以去隔离可能发生的故障,所以这个方法我们已经协助测试了大概全国有30台大型规模的系统,包括曙光5000,曙光4000,联想深腾7000、深腾6800,都是当时国内民用领域最大的计算机,也包括一些学校的中等规模的计算机,像北大的、中山大学的、河北大学的等等,大概加起来有30多套,发现了很多的故障。比如说某台机器,我们当时测的就是发现有一些机器的网卡有问题,通信的时候,其他节点之间的延迟可能有几微秒,但某个节点和其他节点的延迟则达到了几十微秒,一百微秒,明显和那个节点,别人和它通信都很慢,你就想那台机器可能是哪有问题。

从清华大学高性能计算中心看新一代至强处理器的应用 

863高性能计算机评测中心曾经测试过的曙光5000高性能计算机

还有我们测华中科技大学的一台机器,当时发现也是有一台机器也是和别人通信特别慢,后来发现有人在上面不知道为什么装了一个虚拟机。这个例子说明了高性能计算机的复杂性,软件不定谁装了什么,后来忘了删了,机器上面装了虚拟机肯定会慢,但是别人不知道,你用它来算也算得出来,就是慢很多,类似这种问题我们都可以用我们的方法来检测和诊断。

记者:你刚才说的分层建模,扩展出来就是分层的建立测试模型是吗?

陈教授:对,建立测试模型的目标其实是预测,我预计这个程序在这上面应该执行多长时间,但是我发现后来和你最后真正的测试时间不符,我就知道系统中可能存在故障。

记者:就是每层都有自己的参考值?

陈教授:没错。

记者:这个应该是测已完成的成品,如果系统还不存在,评测技术有哪些用途?

陈教授:

在系统不存在的情况下可以使用评测技术主要对两类用户提供帮助。一种是对系统设计者来说,我们研究了一套性能预测方法,能够让你知道我的机器怎么样设计能够满足用户的需求,用户可能说我现在有两个程序要在这个机器上跑,我希望它能够达到一个什么样的性能,这个时候设计者就说,我选这个CPU、这个网络、这么大的内存、这么多的节点,我就能满足这个要求。我们的技术就是帮助设计者来回答这样的问题。但这个问题比较专业,我们专门有一个研究的结果,已经发表在国际上这个领域最好的会议上了,这个就不跟大家多介绍了。

我现在说另外一个问题,对于一个购买者来说,他还没有买这台机器,他的问题是说我现在有一些应用要跑,我要买一台机器,有一些应用要在上面跑,我现在有一个厂商,他要来希望向我提供产品,这个时候我们怎么选择这个产品,这也是我们说的全过程评测很重要的一点,实际上就是如何用评测技术支持购买决策。

要解决这个问题,首先要定义良好的性能指标。我们过去经常大家会看到,我们评价一个高性能计算机,最流行的方法就是用Linpack指标,就是我们买机器的人提出来,我们要买一个、就像我刚才跟大家介绍的,一个100T以上的机器,这句话什么意思呢?无非两种意思,一种是说我这个机器的理论峰值超过100个T,另外一个是说我们实测的Linpack能够超过100个T,这是一个很简单的描述,稍微内行一点的人都明白你说的是什么。这是很常用的指标,我们的看法是,Linpack这样的指标是有意义的,如果Linpack都测不好,你跑其他的应用肯定是跑不好的,所以它是很有意义的。但是从用户的角度来讲,如果我们仅仅依靠Linpack来决定购买一台计算机的话,可能会有很多误导的情况,有失偏颇。我们就想怎么样在这个基础上做一些补充,就是说我们怎么样能够给用户提供一套评测的方法,让用户能够选择对他最适用的系统,这是我们想解决的问题。

 从清华大学高性能计算中心看新一代至强处理器的应用

863高性能计算机评测中心曾经测试过的联想深腾7000高性能计算机

我们提出来的方法就是,首先要整理用户的应用,就是我要买这台机器,你到底有哪些应用在上面跑?这个要先整理出来。但是你要整理出来以后,比如说我有30个应用可能会在上面跑,像我们学校里面用户非常多,几十个很正常。我能不能把这30个都拿来测试呢?也很麻烦,大家知道,做测试也有一个时间的限制,也有一个这个每一个测试程序要整理也需要很多的时间,所以我们想基本上是选择你最重要的应用,这是一个原则,也就是说我有30个用户,我选择其中5个到10个最重要的应用。

第二是要分类,就是说你有可能有10个应用,但是10个应用都是一个用户的,它的行为都很相像,我可能不用都选这10个应用,而是再选一些不同类型的。所以这个步骤叫做“代表性的应用抽取”。我先把最重要的,而且类型不同的应用我把它提取出来,作为我们做测试的侯选。第二步实际上是测试程序的定制,比如说你拿来一个应用,它并不能直接作为测试程序,我们测试程序有一些什么样的要求呢?第一个要求我们刚才也看到是说你必须把它简化到一个结点上能执行,因为你不可能在做测试的时候,想要的机器都做好了,你必须把测试程序简化到能够在一台机器上执行。二是执行时间不能太长,也不能太短,比如说0.1秒就执行完,这个时间就很不稳定,不具备可比性。所以我们基本上把这个时间把它放在10分钟到1小时之间,也就是说你大概跑几十分钟,这样的话时间上是比较合适的,不会受很小的波动的影响,很灵敏。但是也不能太长,太长我也等不及了。这两个因素要同时满足,其实还有一个因素,就是说它应该能够验证结果的正确性,就是我们所有的基准测试不止是要测试性能,其实我们以前遇到的情况,就是刚才说到的安腾或者刚才说的IBM的系统,IBM的系统跑的是对的,但是换上安腾以后,结果就不一样了,怎么回事?最后发现其实没错,安腾是80位的浮点,原来的是64位的标准的浮点,但是结果就是不一样,我们要考虑怎么让用户接受这一点。所以就是说结果的验证,最后至少我知道这个基准测试是对的,这是一个部分,就是基准测试程序的定制。

第三部分实际上叫做应用性能分数的整合,因为我们最后不是测一个程序,我们是测多个程序。最后你拿出一个矩阵出来说,这几个程序在这个机器上运行这几个时间,另外一个机器是另外几个时间,最后评标的时候,或者说我们自己没有一个很好的认识,就是你这个机器到底是哪个快哪个慢,或者你这个快一点,那个快一点,最后肯定不一样,我们也是按照国际上比较标准的做法,SPEC CPU的做法,实际上是取一个标准系统上的测试程序执行时间做一个单位,所有的系统的时间和大家去除一下,就有一个相对性能,然后把每个程序的相对性能,合起来做一个几何平均值,这个几何平均值就是最后这个系统的性能得分,也就是说相对这个标准系统如果是“1”的话,那么我这个系统可能是1.5或者是0.5,这样的话来反映出它的一个性能指标,这个性能指标就是单台服务器的性能,我们就用这个方法得出来的。

所以总体上就是我们刚才说的,我们提供一套方法是面向用户应用,然后可以用这套方法得出来你要侯选系统中每一个侯选节点的性能,当然你可以根据这个比如说需要100个节点,或者1000个节点,你怎么去预设全系统的性能,当然这和通信网络还有一些关系,但是你这个就更复杂了。但是最基本、最关键的点,我觉得用这个方法可以提供出来了。

所以我们希望能够把这个方法推广开,我们在清华的这个机器上已经做过一次,就是说我们提取了5个有代表性的程序,一个是气候模式的程序,一个是环境污染演变的程序,一个是计算化学的程序,一个是物理系用的程序,还有一个是生物系,就是刚才我讲的蛋白质结构计算的应用,这五个程序是我们将来的系统里面使用较多的关键应用。我们就采用刚才我说的这些方法,对应用进行了裁剪,然后做这个结果的验证,最后做了这个测试。特别是我们还做了功耗测试,就是这个机器的功耗在算的时候、满载的时候是怎么样的,然后空载的时候是怎么样,我们把功耗指标也得出来,这样对于将来估算整个系统的功耗值和电费也是一个很好的参考作用。

记者:您刚才提到全过程评测,以你们要做的那个100T的系统为例:你做购买决策的时候,很多时候其实有一部分也是提给一个设计者,你知道不同的配置包括CPU、包括内存容量,价格会差的非常多。你在测试的过程当中你发现什么样配置、什么样的要求,比较满足像清华这种应用需求?

陈教授:实际上现在尤其是MPI的程序,每一个节点的规模都是可以控制的。所以从这个角度来讲,内存配置的意义不是特别大,我们采用的方法是我们有多少钱能买得起多少内存,就买多少。我们就定一个标准的一个内存容量,把我们的应用程序的规模定制到这个容量上,看看它执行的速度。

另外从通信网络的测试上我们也没有办法一开始拿好多机器来测。所以这个方面我们也不是根据测试数据来进行评估,可能是根据一些基本性能数据,比如点对点通信、延迟、带宽这些特征来做一个估算。基本上是这样,我们现在这个方法最大的好处就是帮助选CPU的型号,哪一种CPU在跑单机MPI的任务有更好的性能,我们就认为用它做出大的系统性能也会比较好。

记者:从HPC应用架构来讲,像一些系统,可能运算的越快越好,像超算的方面,程序非常多,可能要求不一样,更加不通用。但往往通用化的项目,是应用比较平庸的,各方面都不会追求特别好,同样来讲受到的限制不多,你这次选型的时候,你有受到过哪些方面的限制?比如技术特性方面的?

陈教授:是这样的,我们在选择代表性应用的时候,已经考虑了这个问题。我们认为我们主要服务于这些用户,必须把他们都服务好,其他用户,要是觉得这个机器不错就用,不行自己想办法。

记者:预估这些应用,预估计算量的时候怎么做的?比如你单节点,你搜集了30多类应用,你怎么去得出未来、去预估未来每个学院,预算量的估计?

陈教授:我们其实做了很多用户调查,在买机器之前,我们开过好几次用户会,就是调查你觉得现在这个机器怎么样,以后用什么软件,这个需求是怎么样我们都做过。

记者:测试最容易出现的灵敏性的问题是在哪里?

陈教授:以我们的经验来看,应用最大的性能问题实际上是访存。,目前,系统对 “稠密矩阵”的访存问题解决得相对较好,Linpack就是“稠密矩阵”,因此得到了很高的计算小吕。。除此以外,对于随机的内存访问,应用的访存一般都有不少提高的空间。比如我们在2004到2007年跟英特尔一起做过五六个生物信息学应用程序的优化,基本上串行优化这部分就可以提高十倍。

至强7500HPC胖节点

记者:我想问一下,咱们以前的计算中心里面有没有用过胖节点的?

陈教授:其实我刚才没讲,我们有一个64个CPU的SGI的机器,Altix 3700,我们也是在两三年以前买的,主要是教学用。因为当时也看到未来多核是个趋势,一个节点里面也会出现几十个核,但怎么教学生针对这种情况编程是个问题,因此就买了一个大的胖节点来做,但是现在上面的应用不是很多,原因是那个机器还是比较慢,所以现在真正在上面跑的应用太多。目前学校里面需要胖结点的比较重要的应用还是计算环境污染的程序,它只有OpenMP而没有MPI的版本。所以在新的系统里面,这种应用也需要很大的、很快的胖节点来运行。

从清华大学高性能计算中心看新一代至强处理器的应用 

SGI的Altix 3700,想当年也是HPC领域一代“名器”

记者:那您刚才举的气候、环境、化学和物理生物等五个应用,您能详细介绍这五类应用对HPC系统都有什么需求么?比如说哪些CPU密集型的,哪些是内存密集型的?

陈教授:大部分都是CPU比较密集的程序,像生物这个程序他有一个特点,如果向量化做得好是很有好处的,所以我们进一步考虑可能用GPU来做一些工作。像气侯的程序他是一个稀疏矩阵计算,稀疏矩阵这个运算现在我们也想了很多办法来提高,我们不光是测试这个程序,其实我们也在进一步优化这个程序,目前还没有取得很好的成果,稀疏矩阵缓存压力很大,7500系列和5600系列它们在缓存方面比上一代有很明显的改进,所以这方面也能够看到它的性能有很好的提高。

 从清华大学高性能计算中心看新一代至强处理器的应用

相较于上一代的至强7400,至强7500在规格上有了质的飞跃

记者:像7500您感觉最深的是这五类应用里面在它上面跑得更好,进步非常明显或者成绩很突出?

陈教授:我觉得就是我说的环境方面的程序,是哈佛大学开发的一个环境污染计算的程序,叫GEOS-CHEM就是地理化学。污染其实是一个化学反应,它是以天气预报的风、空气流动、温度变化这些东西为输入。把污染物的东西放进去,看污染物整个的过程。这个程序的特点是说,它没有MPI的版本,只有Open MP版本。所以过去我们在Nehalem的系统上也做过,像Nehalem其实它的加速比还是不错的,但是问题是过去一个盒子里只有8个内核,两路四核。现在在采用新的7500系列的服务器上面可以有32个核,虽然可以看到这个程序在32核左右的加速比会放缓,但是性能依然可以得到明显提升,这在过去的系统中是比较困难的。

记者:以现在HPC的应用来说,本身它从内存的支持可以说表现已经很好了,但是总有一些应用它不适合拓展很多机器上面。清华现在基本上在这套机器上跑的应用已经确定了,你有没有大概其确定一下比如说我应该用多少胖节点,用多少个普通的节点呢?

陈教授:我们的普通的节点应该是900个左右,这基本上是确定的,胖节点我想不会很多。具体的数字我们要根据预算的情况来定。

记者:这主要是受限于预算?

陈教授:对,受限于预算,同时也受限于应用。我们现在大部分的高性能计算应用仍然还是用以前的MPI比较好,MPI上跑的很好就可以在5600的机器上跑的很好。就像我刚才说的GEOS-CHEM它没有MPI版本,只有OpenMP版本的,只能依赖于这种胖节点来继续提高,我们选择了5个应用,其中有一个是这种类型的,其他的应用里面也有,但是,我们可能还会有一些未来的挖掘出来的重要应用,也许是这个类型的,但是现在还不清楚。总体上预算有限,可能不会有太多的配置7500系列的胖节点,但是一定会有一部分。

记者:7500的胖节点基本也是4路的吧?不会是8路吧。

陈教授:我觉得不会是8路。8路的首先我们没有测过,实际上现在缓存仍然是一个问题,不知道8路以后的效果怎么样,还很难讲。

记者:你们这回100T这个计算中心,尤其我们也知道,像一些7500胖节点他们宣传亮点就是用固态盘,像我们这次100T的话,会考虑用固态盘做一些节点的控制吗?

陈教授:其实这还是一个成本问题,其实曾经有一个投标的厂商提出这样的方案,使用固态盘存放操作系统是很好的,目前我们没有做过多的要求。厂商能否提供给我们,也是成本的问题。

记者:我不知道你们试用过固态盘吗在这五个应用上面?

陈教授:没有,是这样的,这几个应用目前取得都不是I/O密集的东西,I/O密集的东西做基准测试要有特殊的方法,目前我们还没有把它做得很好。

从清华大学高性能计算中心看新一代至强处理器的应用 

IBM System x3850X5服务器上所采用的eXFlash就是一个很有代表性的SSD设计

固态盘个人认为在短期内想全面代替存储,从成本上不可能,另外从它本身的特性来讲写入速度有限,我觉得可能还是用在少数的系统。固态盘有一个好处,不费电。硬盘还要在那转,固态盘不费电,这方面从研究的角度大家在做一些事情。我用固态盘代替硬盘,我们的操作系统应该怎么样去做优化。这方面进入产业我觉得需要两个方面解决:一个是固态盘本身性价比提高。另外就是他的寿命要延长。这两个同时满足的情况下,我觉得才可以成为代替现有的硬盘。

HPC系统的处理器选择与调优

记者:我们也看到,很多HPC系统的CPU,其实并不是配这个系列的顶级的型号,比如说5600,这个服务器的高层版是5670,我看有些系统用的是E系列,甚至L系列的,你们既是评测者也是用户,你们怎么均衡?您刚才说了,内存可以定一个容量、定制化,CPU是怎么选择的?是通过高能计算能力除以节点数,算出一个基本的运算指标,然后再拿运算指标衡量现在CPU型号,是这么选择的呢,还是通过能耗,性价比还有性能的衰减幅度比较出来的?

陈教授:基本上是性价比,你说的性能衰减幅度也是这样的。如果两个型号价格差很多,性能差不多,我肯定选择低一点价格的。但是如果两个价格差得不多,性能差很多,肯定是选性能高的。实际上,做高性能计算,我们还是推荐尽可能用高端的CPU,因为这主要跟并行计算的特点有关,即使整个程序是并行的,但是还是一部分串行的。其实是希望把串行的部分提升得越快越好,CPU越快,执行串行部分的时间就越短,这样对于整个的执行效率有很好的影响。此外单CPU快的话,应用所需的并行度也可以降低,因为并行度升高了以后,开销也会更大,整个加速比还会下降。

从清华大学高性能计算中心看新一代至强处理器的应用

至强5600家族产品系列(点击放大)

记者:CPU性能高了,就有一个功耗的问题,比如130瓦,95瓦,80瓦等等,这也是一个长远的成本的体现,可能体现在多年的时间上,比如用三年,三年的电费就显示出来了。刚才您谈到功耗测试,是用的SPEC那套系统吗?

陈教授:没有,因为SPEC POWER的那套测试,基本上是对数据中心的模式比较有用,它实际上CPU利用率是从0,10%—100%,每一个利用率上都算一个分,最后把它综合起来,这个在高能计算中基本不出现这种情况。一用就是百分之百,要不然就是不用。我们就是测百分之百和零两个值。

记者:您刚才说考虑性价比,选择CPU,选择高端的,功耗会比较高,比如140瓦,120瓦,中端的可能就是50,60,80瓦,这方面会不会考虑功耗的问题?

陈教授:一个节点的功耗实际上并不完全是由CPU决定的,还有很大一部分是由内存、I/O、网络决定的。CPU看起来功耗差很多,在反映到系统中以后,整个的功耗差别不是很大。CPU功耗的影响对整个系统的稳定性和密度的影响反而更大,对真正的运营成本的反映不是很明显。

从清华大学高性能计算中心看新一代至强处理器的应用 

记者:你们做过估算?

陈教授:是的,我们做过估算。这个差得不是很多。其实我们也考虑过用低功耗的CPU,当时做了一个推算,低功耗,性能也低很多,意味着要用更多的节点。刚才说了一个观点,我们希望单线程速度能快,这样跑并行应用也会快。所以采用低功耗CPU,虽然单CPU功耗较低,但整个系统所需的CPU个数较多,最后整个系统的效率不一定是高的。

记者:陈教授,我问一下加速比的问题,因为去年曙光5000出来以后,那个是基于WINDOWS的,不是LINUX,微软会帮他们调优。他们当时在做的时候,也是从一个、两个、四个、八个,一直调上去。他们有一个估算,要加速比达到多少。你现在测的只是一个单节点,有没有考虑到,系统扩展到这么大规模的时候,会是什么样的状况?

陈教授:如果是Linpack的话,Linpack通信不是它的最大的问题,你可以看到在TOP500,经常可以看到70%,80%,甚至将近90%的全机效率。可从应用程序的角度,你说的是非常大的一个问题,如果通信非常频繁的话,应用的加速比可能,比如到128个以后就下来了,实际上我们在和气象局在做一个天气预报程序优化的时候也是这样,原来到256,扩展性就停了,再多就下来了。他们希望做到4096个并行进程。这时候有两方面的工作可以做:一方面机器通信要快,就是要有好的延迟带宽特性,现在还多了一个,就是对MPI集合通信的硬件加速技术,最近这几个主流的厂商都开始支持这种技术。在此基础上,还需要进一步优化软件,减少通信量,减少通信次数,让通信延迟能够重叠等等。这里就有很多应用优化的技术,我们在做机器的时候是把这些分开考虑的,这个机器提供好的带宽,好的延迟,好的集合通信的支持,只要这些有了,我们先去测试,达没达到你宣称的延迟和带宽的特点,达到了以后,剩下的问题就是变成了应用调优的问题。

记者:院校科研对HPC应用要求,与像能源或者像其他的商业用户的高性能计算有什么区别?

陈教授:能源、商业用户跑的应用数相对会比较少,而且相对比较固定,比如就一个找油的程序,或者就是跑天气预报的程序,相对来说会比较集中,即使是应用程序不同,算法也会比较集中。所以它的购买相对来说更具有针对性,就是这类的应用,抽几个出来。学校里面,相对更多样化一点,比如生物的程序,整数运算和字符串匹配特别多。有些是“稠密矩阵”运算,有些是“稀疏矩阵”运算,不同的领域,不同的算法差很多,有的程序对I/O要求很高,有的程序可能就是没什么I/O,通信也很少,更加广泛一点。但是学校里面有一个好处,就是学校里面使用的软件大部分是有源代码的,要么是开源的,要么是自己写的,这个有什么好处呢?就是系统的一致性,连续性比较好,换一个机器,换一个品牌也是可以的,因为是商用软件,或者是原来写的软件,不太容易做移植。

高性能计算与虚拟化

记者:我有一个问题,北京某用户最近建立了一个计算节点,也是对外提供一个高性能的服务。不过它是以虚拟化的方式提供的,所以说我们用云计算的的方式来提供的,刚才你说给谁做测试的时候,发现有些地方速度慢了。是不是可以这样理解:高性能计算平台跑虚拟化会影响速度?

陈教授:我把这个问题重新解释一下,其实你在问虚拟机和高性能计算之间到底是一个什么样的关系,这个我以前与VMWare做过一个访谈,就是虚拟机和虚拟机之间的关系,我觉得从这几个角度来看。第一个角度,就是我们为什么要用虚拟机,就是HPC为什么要用虚拟机。这件事要先想,因为不是说有一个技术我就一定要拿来用,我根本不需要,我为什么要用他,实际上虚拟机提供的是一个什么样的东西呢?它能提供的是高性能计算系统的很好的管理性,比如说我们楼下的机器,128个节点的已经装好了操作系统,用户来用的时候,还有两个限制:第一个限制是说装好了是什么就是什么,你的应用不符合回去改应用去。比如说我的应用需要Windows,或者说我的应用需要Linux2.6的,你装的2.4的,对不起你会自己回去改你的程序去,跟我没有关系。我不会动你的东西。你知道那个驱动很难装,而且上面有很多参数,一个参数不对系统的性能就下降好多,而且老出问题,所以这个基本上就是你装好什么就是什么,我要求的应用和环境可能不匹配的问题。这是高性能计算用户遇到的第一个问题。

从清华大学高性能计算中心看新一代至强处理器的应用 

中国973项目就是一个自主开发的虚拟化技术项目,的主要研究方向有8个,第一个是虚拟计算系统的架构研究,由国防科大主持;第二个是单维系统资源的虚拟化研究,比如Xen和KVM的单机虚拟化,由北京大学主持;第三个是多维系统资源虚拟化,主要是多机环境下的跨节点虚拟化研究,由清华大学主持;第四个是桌面虚拟化研究,由华中科大主持;第五个是虚拟计算系统的安全、受信、隔离等研究,由上海交大主持;第六个是虚拟化系统估计研究,由浙江大学主持;第七个是基于虚拟化的高性能计算的研究,由江南计算研究所主持;第八个则是应用虚拟化仿真系统研究,由航天部二院主持

第二个问题是说我可能需要调试我的程序,就是我要调试、调优做这些事情,这些事情在生产系统上很难做,因为现在你是一个什么接口呢?是一个调度器接口。就是我提交任务,你运行,完了。就这样,你去排队,就不知道什么时候运行完。现在就是这个接口,没有别的。

又比如说我要登上去,看看我的机器有CPU利用率怎么样?或者有类似的需求,这个事儿很困难。因为这个机器一会儿给你用、一会儿给别人用,我把帐号给你了,你在里面搞一个破坏,你在里面装个软件,所有的性能都会下降下来,这没法弄。所以这是目前高性能计算遇到一个管理上的难题——应用和环境的不匹配。应用可能是开发者,他需要很全功能的开发环境、灵活的开发环境提供出来。所以虚拟机技术可以解决这个问题。也就是说我把虚拟机装上去以后,你要什么操作系统,我就在虚拟机上面给你装上这个操作系统,包括你的应用,还需要什么第三方的的库网环境我都可以装。而且虚拟技术我可以做到隔离,就是你做这件事不影响别人。

另外也是说,用虚拟机的时候我可以给你提供一个虚拟的专用技术。比如说128个节点,我就分32个节点给你。这段时间内这东西就是你的, 在你看来就是你的。你可以在上面爱装什么软件装什么软件,装什么测试、怎么去看、怎么去调、都随你。弄死了就死了,重新启动都可以,就是管理上很方便。

但是没有白来的事,好处是有了,缺点在哪儿呢?就是你说的这个问题。虚拟机在操作系统上面多加了一层。比如说你所有的系统调度都要经过它,所有的系统通信都要经过它,比如说I/O、通信这些事情就会慢。高性能计算的用户就会说(高性能计算)我本来就要快,现在弄半天给我弄慢了,这事不太好,所以这个问题很多人都在关注。实际上非常重要的是通信在虚拟机环境下的优化。

记者:他们说不是现在虚拟机可以直接接网卡么?万兆级的网卡。

陈教授:对,现在有很多工作都在做,比如虽然是虚拟机,不经过虚拟机的VMM,直接和网卡通信。目的就是我既可以使用虚拟机管理性,又可以把虚拟机带来的通信性能、I/O性能下降尽量减少。但是这个技术目前还没有完全成熟。

记者:我估计真要是做虚拟机的话,可能固态盘的优势就显现出来了。

陈教授:就是用它来放这些东西,读的带宽大就是很有用的。

RASTurboBoost与高性能计算

记者:我们之前可能除了数据中心,每个人关注的技术特征新的变化不一样。你觉得从高性能用户来讲有哪些新的技术值得关注?

陈教授:首先这里面我觉得RAS这种特征是非常好的。因为我们现在高性能计算遇到一个很大的问题,就是比如说你一台机器的平均无故障时间是三年,但是你要有一千台机器的话,基本上每天都会有一台机器会坏掉。这个问题就是说,如果在这个系统上运行一周的程序,我怎么去跑这件事?很困难。当然现在有很多其他的研究方法,就是大家都在讲系统不可靠的时候,我怎么让一个应用可以可靠的运行?但是总体来说,系统本身的平均故障时间越长越可靠,在上面做容错的代价也越小,所以这是非常重要的,所以RAS是一个非常重要的特点。

 从清华大学高性能计算中心看新一代至强处理器的应用

至强7500的主要的22项RAS功能设计,在HPC应用中将能最大保证系统的可用性,这对于HPC系统的可持续性计算能力意义重大

另外一个我觉得就是英特尔最近提出的Turbo Boost,这从很多年就开始了。Turbo boost这个技术做并行计算我认为是很有趣的一个东西。就是说我们并行计算里面,经常说并行计算面临的几个程序、面临的几个问题为什么扩展性不好?其中有一个重大的问题就是它的负载不均衡。比如说我分成十个任务,有一个任务要执行十分钟,另外九个任务我要执行九分钟的就够了。这个时候整个的应用是多长时间完成,十分钟来完成。剩下的人都在那等着你,负载不均衡就出现这个问题。你想你这么多机器就因为一两个进程就等了很久,这是一个效率很低的事情。现在突然有了这个Turbo Boost这个技术以后,实际上过去动态电压和频率调节,这个技术很早就有了,大家当时主要用这个技术来节能,我们用的时候把频率变低一点,耗电会低一点。Turbo Boost有点反过来就是说,我还是调电压和频率。但实际上我这么多核,我不能都到最快的频率去,我让其中一个上去,这件事就很有趣。

从清华大学高性能计算中心看新一代至强处理器的应用 

英特尔的Turbo Boost技术图示,:①代表在TDP的限制下,4个核心共同工作;②代表当应用负载提高时,系统可以在TDP的允许范围内对核心主频进行超频;③代表如果应用负载只在两个核心上,那么可以把另外两个核心关闭,并把节省下的电力提供给剩余的两个核心,让它们达到更高的频率,当然这也是在TDP范围内进行调整

我刚才说了有负载不均衡的情况。我知道哪个应用,哪一个任务运行时间很长,我调一下频,我把它放在快的核上,剩下的任务我放在其他核上。所以Turbo Boost实际上对并行计算来说,它把原来一个同构的系统,其实现在变成异构的,而且你可以自己调节。这是我们现在正在做的一项工作,就是想办法用这个技术来解决高性能计算里面负载不均衡的挑战的问题。我们觉得很有趣,也是很重要的一个问题。

记者:还有就是对大内存的支持。

陈教授:大内存支持是7500系列的。这也很重要,我刚才讲有一类程序其实需要这种支持。

记者:它在小内存上跑不了么?

陈教授:对,它跑不了。我刚才说了,如果我把网格粒度画细的话,我就需要整个内存能够很大,我怎么跑?在这个小内存上面我完全没有办法跑。它就会到硬盘上做调度,就会慢的不得了,所以我就需要有很大内存的机器。

记者:您前面讲正在运行的程序,是说把跑得慢的任务指定给速度快的核?

陈教授:对,同时我去调核,让那个核在高频状况下。

记者:这些需要你进行设置的?

陈教授:对,还是我说的。用户就还是不知道,用户程序扔给我了。我在底层的MPI库会去干这件事。用户不用管这件事,我会去看底层的这些核,我知道哪些可以调高,就是哪四个中的有一个调高我之知道,然后我通过某种方式得到你应用的特征,然后我把它放在合适的核上。

记者:这也是作为现在系统里调优的一个方面?

陈教授:这个还没有任何人做过,而且我们还没有做完。这只是一个我的想法。我只是说这样的技术实际上给我们提供解决这个并行计算问题中的可能性。但是我还在做,我觉得应该是对的,但是现在还没有结果。

综合评分:8.13 分
云能力:8.3 分
营业额:533亿美元[2012]
云服务:英特尔云计算

查看更多 >>

邮件订阅

如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅ZDNet技术邮件将是您的最佳途径之一。