1对计算机系统性能评价的认识和理解1.什么是计算机系统性能评价?在20世纪60年代中期,出现了多任务、多用户的计算机系统,随着大家对这种系统的应用,人们发现这些系统表现出来的实际性能并没有预计的好,从而引发了对计算机系统性能评价的研究。计算机系统性能评价就是采用测量、模拟、分析等方法和工具,研究计算机系统的生产率、利用率、响应特性等系统性能。这里,性能代表系统的使用价值。性能评价技术就是将看不见摸不着的性能转换为人们能够数量化和可以进行度量和评比的客观指标,以及从系统本身或从系统模型获取有关性能信息的方法。前者即测量技术,后者包括模拟技术和分析技术。性能评价通常是与成本分析结合在一起,以获得各种系统性能和性能价格比的定量值,然后可以指导新型计算机系统(如分布计算机系统)的设计和改进,以及指导计算机应用系统的设计和改进,包括选择计算机类型、型号和确定系统配置等。2.系统性能评价的定义按照某个或某类计算机系统的用途,求出它的性能指标,并给出其优劣性的评论,研究计算机系统配置、系统负载和性能指标之间的相互关系,进一步优化计算机系统,或者推荐用户选购更合适的计算机系统。注意:评价的目标系统可能已经存在,也可能尚在设计优化之中。23.计算机系统性能评价的意义无论生产商还是用户,都需要某种方法来衡量计算机系统的性能,以便于生产商确定最佳的设计方案,或者发现影响系统性能的瓶颈,以进行优化改进;或者为用户选购最适合的计算机系统提供决策依据。4.性能的分类一般来说,计算机系统性能有如下几种:1)处理能力:一般包含计算速度、吞吐率、响应时间/平均响应时间。其中计算速度有峰值速度、持续可用速度、定点或浮点运算速度,计算速度是用来评价计算机尤其是高性能计算机的主要考量,如我们选购计算机时关注的CPU的主频,严格来说,CPU的主频与CPU实际的运算能力并没有直接关系,因为CPU的运算速度还要看CPU的流水线的各方面的性能指标(缓存、指令集,CPU的位数等等),虽然CPU的主频不代表CPU的速度,但提高主频对于提高CPU运算速度却是至关重要的;吞吐率是单位时间内计算机系统完成的任务数,吞吐率越高,计算机系统的处理能力就越强;响应时间/平均响应时间是从计算机系统得到输入到给出输出结果之间的时间,一般用户比较关心,不过一般响应时间还和使用的软件有关。2)可靠性:计算机系统正常工作的能力。它要求计算机系统首先是可靠的,或者一旦计算机系统发生故障,它应该具有容错的能力,再或者系统出错后能迅速恢复。通俗的将,即计算机系统最好不要出错,或者少出错,或3者出错后能够及时恢复工作状态。由于计算机系统由硬件和软件组成,它们对整个系统的可靠性影响呈现完全不同的特性:硬件和一般人工产品的机件一样,时间一长就要出毛病。软件则相反,时间越长越可靠。因为潜藏的错误(Bug)陆续被发现并解决,它又没有磨损、氧化、松动等问题。所以,计算机的可靠性是指分别研究硬件的可靠性和软件的可靠性。3)利用率:即在一段时间内被使用的时间(次数)占总时间(总使用次数)的百分比,有硬件利用率、软件利用率、指令利用率等。提高计算机硬件性能利用率多半是对服务器而言,比如很多不同目的的服务器,大部分时间只使用了30%左右的硬件资源,剩余的都是闲置的。目前一般采用VM等虚拟化技术提高计算机利用率。4)易用性:计算机系统方便用户使用的用户感知度,这是用户选购计算机系统时会考虑的重要指标,通常是对软件系统来说的,比如Windows和Unix的区别,一般用户肯定倾向于使用Windows系统,只有专业人士或者要求安全性高的用户会使用Unix系统。5)功耗及对环境的要求:对于特殊环境下使用的计算机系统尤其重要,如军用、航天计算机、水下计算机等。计算机系统设计人员也需要考虑对环境的因素,如电压是否稳定等。5.系统性能评价的方法常用的有如下三种方法:测量法、模拟法和模型法。本篇主要介绍测量法。1)测量法:通过测试设备或测试软件直接对计算机系统进行测试,并得4到相应的性能指标。使用这种方法评价的条件是必须有具体的计算机系统。这种方法的优点是真实,可靠;缺点是评价结果可能与被测量计算机系统的具体用途有很大关系。2)模拟(仿真)法:通过建立仿真模型,在一台现有的计算机系统上模拟目标系统的全部行为。这种方法在计算机系统设计特别是CPU设计上得到广泛的应用。3)模型法:首先对被评价的计算机系统建立一个数学模型,再求出该模型的性能指标。这种方法的优点是成本低,但是采用这种方法的条件是:之前曾在相似的具体的计算机系统上通过测量法验证过模型法中的数学模型,证明是可行且近似相近的。三种方法的比较模型法模拟法测量法适用范围任意系统任意系统已有系统所需时间短中长所需工具模型程序语言设备精确性低中不确定参数之间的折衷容易适中困难费用低中高6.常用的测量方法6.1时钟频率计算机的时钟频率在一定程度上反映了机器速度,一般来说,主频越高,速度越快。这是我们选购计算机时最常用的性能指标,但是否主频越高,计5算机的性能也越高呢?答案很显然是否定的。CPU的主频表示在CPU内数字脉冲信号震荡的速度,与CPU实际的运算能力并没有直接关系。主频和实际的运算速度存在一定的关系,但目前还没有一个确定的公式能够定量两者的数值关系,因为CPU的运算速度还要看CPU的流水线的各方面的性能指标(缓存、指令集,CPU的位数等等)。由于主频并不直接代表运算速度,所以在一定情况下,很可能会出现主频较高的CPU实际运算速度较低的现象。比如AMD公司的AthlonXP系列CPU大多都能已较低的主频,达到英特尔公司的Pentium4系列CPU较高主频的CPU性能,所以AthlonXP系列CPU才以PR值的方式来命名。因此主频仅是CPU性能表现的一个方面,而不代表CPU的整体性能。虽然CPU的主频不代表CPU的速度,但提高主频对于提高CPU运算速度却是至关重要的。6.2指令执行速度计算机被发明出来首先是为了满足计算功能的,所以早期曾用加法指令的运算速度来衡量计算机的速度,速度是计算机的主要性能指标之一。因为加法指令的运算速度大体上可反映出乘法、除法等其他算术运算的速度,而且逻辑运算、转移指令等简单指令的执行时间往往设计成与加发指令相同,因此加法指令的运算速度有一定代表性。当时表征机器运算速度的单位是KIPS(每秒千条指令),后来随着机器运算速度的提高,计量单位由KIPS发展到MIPS(millioninstructionspersecond),现在已经有千万亿次的超级计算机出现。需要主要的是,执行指令速度主要取决于CPU时钟频率和一、二级缓存6的大小以及系统总线,另外内存、硬盘带宽大小等也会影响执行指令的速度,因为CPU要与外界交换数据。6.2.1MIPS它表示每秒百万条指令数,对于一个给定的程序,它定义为:6610CPI10MIPS指令条数时钟频率执行时间程序的执行时间为:610eTMIPS指令条数其中:eT为程序执行时间,CPI为每条指令的平均时钟周期,时钟频率为每秒周期数即每周期的时间的倒数。显然,机器愈快其MIPS愈高,但MIPS对指令系统和程序的依赖性很大,故在某些情况下不能准确反映系统的性能。例如,执行百万次的空指令和百万次的加法指令所用的时间显然是不同的,所以用MIPS表示计算机系统性能并不完善。6.2.2MFLOPS随着计算机系统的发展,MFLOPS(millionfloatingpointoperationspersecond)被提出来评价计算机系统性能。MFLOPS表示每秒百万次浮点操作次数,它的定义:610MFLOPS程序中的浮点操作次数执行时间显然,MFLOPS可以用来衡量机器浮点操作的性能,因为同一程序在不同机器上执行的指令可能不同,但执行的浮点运算却是完全相同的。但是,MFLOPS不能体现机器的整体性能;MFLOPS取决于机器和程序两个方面,7因为不同机器浮点运算集不同,因此不同的浮点操作类型运算时间不同。6.2.3等效指令速度法随着计算机指令系统的发展,指令的种类大大增加,用单位指令的MIPS或MFLOPS值来表征机器的运算速度的局限性日益暴露,因此很快出现了改进的办法,称之为吉普森(Gibson)混合法或等效指令速度法。等效指令速度法统计各类指令在程序中所占比例,并进行折算。设某类指令i在程序中所占比例为wi,执行时间为ti,则等效指令的执行时间为:0Tniii(w*t)其中n为指令的种类数。很明显,等效指令速度避免采用单一的定点或浮点运算来评价计算机系统指令速度,但是各种指令所占比例如何确定又是一大问题。6.2.4数据处理速率PDR美国政府商务部曾用PDR值作为一类计算机CPU性能值,并作为出口许可证的限制性指标。美国政府商务部在1980年10月规定出口到中国的计算机系统的PDR不能超过32,到1981年12月,将标准改为PDR不能超过64。在不同程序中,各类指令的使用频率是不同的,所以固定比例方法存在着很大的局限性;而且数据长度与指令功能的强弱队解题的速度影响极大。同时这种方法也不能反映现代计算机中高速缓冲存储器(cache)、流水线、交叉存储等结构的影响,具有这种结构的计算机的性能不仅与指令的执行频8率有关,而且也与指令的执行顺序与地址分布有关。数据处理速率PDR法采用计算“数据处理速率”PDR值的方法来衡量机器性能,PDR值越大,机器性能越好。PDR与每条指令和每个操作数的平均位数以及为条指令的平均运算速度有关,其计算方法如下:PDR=L/R其中:L=0.85G+0.15H+0.4J+0.15KR=0.85M+0.09N+0.06P式中:G是每条定点指令的位数;M是平均定点加发时间;H是每条浮点指令位数;N是平均浮点加发时间;J是定点操作数的位数;P是平均浮点乘法时间;K是浮点操作数的位数。此外,还作了如下规定:G20位,H30位;从主存取一条指令的时间等于取一个字的时间;指令与操作数存放在主存,无变址或间址操作;允许有并行或先行取址指令功能,此时选择平均取指令时间。PDR值主要对CPU和主存储器的速度进行度量,但不适合衡量机器的整体速度,因为它没有涉及cache、多功能部件等技术队性能的影响。96.2.5GFLOPS、TFLOPS、PFLOPS随着超级计算机的出现,MFLOPS早已赶不上计算机计算速度的步伐,现在超级计算机的指令速度已经达到GFLOPS(每秒十亿次浮点指令),TFLOPS(每秒万亿次浮点指令)和PFLOPS(每秒千万亿次浮点指令),G、T、P都是是常量,1P=1024T,1T=1024G,1G=1024M,1M=1024K,PFLOPS就是每秒运算能力为千万亿次。超级计算机排名机构对全球超级计算机评测排名,2011年6月第37届全球超级计算机排行榜上,列第一位的是日本的“京”(Kcomputer),当时“京”的最大性能为8162000GFlops(8.162PFlops),峰值性能为8773632GFlops;我国天河一号A超级计算机最大性能为2566000GFlops(2.566PFlops),峰值性能为4701000GFlops,排名第二位。近日(2011年11月),日本RIKEN高级计算科学研究院(AICS)、富士通今天联合宣布,世界上最快的超级计算机“京”(KComputer)已经成功提速,Linpack测试的最大计算性能达到了10.51PFlops,也就是每秒钟1.051亿亿次浮点计算,这也是人类首次跨越1亿亿次计算大关。同时,“京”的峰值计算性能也达到了11.28PFlops。6.3基准测试程序上述性能评价方法主要针对CPU(有时包括主存),它没有考虑诸如I/O结构、操作系统、编译程序的效率等系统性能的影响,因此难以准确评价计算机的实际工作能力。基准程序测试法(Benchmark)是研究较多的一种方法,它把应用程序中10用得最频繁得那部分核心程序作为评价计算机性能得标准程序,在不同的机器上运行,测得其执行时间,作为各类机器性能评价得依据。机器