计算机系统基础知识_性能指标及评估程序

文章目录

  • 概述
  • 性能评测常用方法
  • 基准测试程序
    • 整数测试程序
    • 浮点测试程序
      • 理论峰值浮点速度
    • SPEC基准程序
    • TPC基准程序

概述

无论是计算机厂商还是用户,都需要一种方法来衡量计算机的性能,作为购买和使用的依据。但是,由于计算机系统非常复杂,其体系结构、组成和实现都有若干种类,其应用领域也千差万别,所以需要找到一些方法来衡量计算机系统的性能。


性能评测常用方法

  1. 时钟频率

    计算机的时钟频率在一定程度上反映计算机的机器速度,一般来讲,主频越高速度越快。但同频率不同体系结构的机器速度可能相去甚远,就像arm架构的同主频难以和x86架构的同主频比较一样。

  2. 指令执行速度

    在早期,人们曾用过加法指令的速度来衡量计算机速度,因为加法指令大体上可以反映出乘法、除法等其他算术指令的速度,而且逻辑指令、转移指令一般也设计成类似于加法指令,所以加法指令确实具有其代表性。

    描述指令执行速度的单位有KIPS(每秒千条指令)、MIPS(每秒百万条指令),但后来很多评测方法考校浮点数操作性能,于是有FLOPS(每秒浮点运算数)、MFLOPS(每秒百万浮点运算)、TFLOPS(每秒万亿次浮点运算)等等。

  3. 等效指令速度

    随着计算机指令系统的复杂化,用单条指令难以评判计算机系统性能,于是出现了吉普森(Gibson)混合法或等效指令速度法等改进的评测方法。

    主要是统计各类指令在程序中所占的比例,进行加权计算。设某类指令i在程序中所占比例为 w i w_i wi,执行时间为 t i t_i ti,则等效指令的执行时间为(其中n为指令种类数量):
    T = ∑ i = 1 n ( w i × t i ) T = \sum_{i=1}^n(w_i \times t_i) T=i=1n(wi×ti)

  4. 数据处理速率(PDR, Processing Data Rate)

    在不同程序中,各类指令使用频率是不一样的,所以固定比例方法存在局限性,而且数据长度也会影响速度,同时,固定比例也无法反映现代计算机中高速缓存、流水线和交叉存储等结构的影响。

    因此,PDR法采用计算PDR值的方法来衡量机器性能,其值越大,机器性能越好。PDR值与每条指令和每个操作数的平均位数及每条指令的平均速度有关,计算方法如下:
    P D R = L / R L = 0.85 G + 0.15 H + 0.4 J + 0.15 K R = 0.85 M + 0.09 N + 0.06 P PDR = L / R \\ L = 0.85G + 0.15H + 0.4J + 0.15K \\ R = 0.85M + 0.09N + 0.06P PDR=L/RL=0.85G+0.15H+0.4J+0.15KR=0.85M+0.09N+0.06P
    其中:

    • G —— 每条定点指令的位数
    • M —— 平均定点加法时间
    • H —— 平均浮点指令位数
    • N —— 平均浮点加法时间
    • J —— 定点操作数位数
    • P —— 平均浮点乘法时间
    • K —— 浮点操作数位数

    此外,还规定:G > 20, H > 30;从主存取一条指令的时间等于取一个字的时间;指令与操作数存放在主存,无变址或间址操作;允许有并行或预取指令功能,此时就选择平均取指令时间;

    PDR值主要对CPU和主存储器的速度进行度量,不过并不适合衡量机器整体速度,因为没有考虑Cache、其他部件等技术对性能的影响。

  5. 核心程序

    上述的方法都是以CPU为主的评估方法,没有考虑整体结构对性能的影响,所以有时候也难以准确评价计算机系统的实际工作能力。

    而核心程序法是研究较多的方法,它把应用程序中用的最频繁的部分程序作为评价计算机性能的标准,在不同的机器上运行测得执行时间,作为各类机器性能评价依据。这样一来,机器的软硬结构特点就能得到反映,但是核心程序之间联系较小。另外由于核心程序都比较短,因此可能会让Cache命中率出现虚高的情况。


基准测试程序

基准程序法(Benchmark),又叫做跑分,是目前被用户一致承认的性能测试的较好方法,有不同的基准程序,针对不同的领域进行测试。

整数测试程序

Dhrystone是综合性的基准测试程序,它是针对编译器及CPU处理整数指令和控制功能的有效性针对性的选择了一些”典型指令“综合形成的测试程序。

其测试结果以Dhrystone为单位,数值越大性能越好。如VAX11/780的测试结果为每秒1757 Dhrystones,为了便于比较也有将VAX11/780作为基准值1,其他机器测速来的结果除以1757得出性能相对于VAX11/780的比率。

但不同的厂家在测试时使用的基准程序不一,因此有可能得出相同的MIPS值却在性能上不同。总而言之,采用相同体系结构的计算机并使用同一基准程序测试,得出的结果才具有参考价值。

浮点测试程序

浮点数性能在科学和工程应用领域非常重要,因为大量运算都是基于浮点数的,因此机器的浮点性能很大程度上决定了在这些专业领域上的效率。

目前浮点数的测试主要有Linpack和Whetstone两种,前者主要测试向量和高速缓存,后者是综合测试程序,除了浮点还测试整数等功能。

  1. Linpack基准测试程序

    用Fortran语言编写的软件包,叫做基本线性代数程序包,完成的主要是浮点加法和乘法的操作。

  2. Whetstone基准测试程序

    也是使用Fortran语言编写,但除了浮点运算外,还有整数运算、功能调用、数组变址、条件转移和超越函数的程序组成,其测试结果用Kwips表示,1Kwips表示每秒钟执行1000条Whetstone指令。

理论峰值浮点速度

巨型机及以上系统经常会标注理论峰值速度的FLOPS值,但注意这个并不是机器实际执行程序的速度,而是其理论上限,它不仅与主频相关,还与并行操作流水线部件的数量、CPU的数量相关,而且往往仅仅是简单的乘积。

如美国超算顶点,其理论峰值浮点高达200794.9TFLOPS,但实际测试性能为143500TFLOPS。

SPEC基准程序

其全称是Standard Performance Evaluation Cooperation,由几十家世界知名计算机厂商共同支持的非营利性合作组织。

最初在1989年建立了面向处理器的基准程序集,现在主要版本为SPEC CPU2006,其中包含12个整数基准测试程序集(CINT 2006)和17个浮点基准测试程序集(CFP 2006),前者主要包括C程序编译、量子计算机仿真、象棋计算等,而后者主要包括有限元模型结构化网络、分子动力学质点、流体动力学稀疏线性代数等。

为了简化测试结果,SPEC用单一数字来归纳12种基准测试程序,将被测的计算机执行时间除以参考处理器执行时间,结果成为SPECratio,值越大表示性能越快。

TPC基准程序

这是一个由Transaction Processing Council开发的基准程序,主要评价计算机的事务处理、数据库处理、企业管理决策系统等方面性能。

其中,TPC-C是在线事务处理的基准程序,TPC-D是决策支持的基准程序,TPC-E是大型企业信息服务基准程序。

该基准程序的指标主要是性能指标tps(transactions per second),指系统在执行交易时,每秒钟可以处理多少交易,值越大越好。另外还有一个性价比指标,该指标是与tps的比值,越小越好。

TPC基准特色在于商业处理能力作为主要考量,并且具备性价比指标。

你可能感兴趣的:(计算机系统基础知识_性能指标及评估程序)