计算机系统性能评价与性能分析
参考:https://foxsen.github.io/archbase/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F%E6%80%A7%E8%83%BD%E8%AF%84%E4%BB%B7%E4%B8%8E%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90.html#%E6%B5%8B%E8%AF%95%E7%A8%8B%E5%BA%8F%E9%9B%86
完成一个任务所需要的时间可以由完成该任务需要的指令数、完成每条指令需要的拍数以及每拍需要的时间三个量相乘得到。
因此人们通过一系列基准程序集来评价计算机性能,包括SPEC CPU、SPECweb、SPECjbb、STREAM、LMbench、Linpack、SPLASH、EEMBC等等。
性能分析可以分为性能建模和性能测量两类。性能建模主要用于设计的早期还没有实际系统阶段,又可以细分为基于模拟的建模和基于分析的建模。在原型系统出来之后,实际机器的测量提供了一个附加的反馈可以帮助验证设计阶段的分析模型。最后,对一些具体计算机系统进行性能比较和分析。
12.1 计算机系统性能评价指标
我们经常说一台机器速度很快,这个“快”怎么衡量?对于普通用户而言,速度快就是执行一个程序运行的时间短。对于Web服务器而言,性能高表示每秒所完成应答的Web请求数量大,对于像京东和淘宝这样的电子商务网站,衡量的指标通常是每秒完成的交易事务(Transaction)即吞吐率。
12.1.1 计算机系统常用性能评价指标
计算机系统的性能有许多衡量指标,如 每条指令的时钟周期数(CPI)、每秒执行百万条指令数(MIPS)、每秒执行百万浮点运算数(MFLOPS)
Openbenchmarking.org网站收集了大量的开源测试程序集合,这个测试程序集合称为Phoronix Test Suite。
表12.1给出了AMD Athlon II X4 645的测试结果。
从表中可以看出性能衡量指标包括以下方面:
完成任务的执行时间,例如并行的BZIP2压缩和LAME MP3编码,执行时间越短越好。
每秒多少帧,每秒的帧数是越多越好,例如H.264视频编码和射击游戏《帕德曼的世界》(World of Padman)。
MIPS,例如7-ZIP测试压缩速度。
MFLOPS,如Himeno中泊松压力方程求解。
每秒执行了多少个事务,如PostgreSQL pgbench测试TPC-B。
每秒传递多少个签名,如OpenSSL中RSA测试。
每秒服务多少个请求,如Apache网页服务器。)
每秒执行的百万次操作数(Mop/s),如NPB中的EP.B。
每秒完成计算多少个节点,如TSCP人工智能下棋程序,每秒能下多少步棋。
带宽,即每秒能完成多少MB的访存操作,如STREAM测试程序。
表 12.1: AMD Athlon处理器的Phoronix Test Suites测试结果
测试程序 |
指标 |
性能 |
分值 |
World of Padman v1.2 |
每秒帧数(FPS) |
越大越好 |
177.33 |
H.264 v2015-11-02 |
每秒帧数(FPS) |
越大越好 |
101.97 |
GraphicsMagic v1.3.12 |
每分钟迭代次数 |
越大越好 |
108.00 |
John The Ripper v1.7.9 |
每秒破解的数目 |
越大越好 |
5,174,833.00 |
John The Ripper v1.7.9 |
每秒破解的数目 |
越大越好 |
1,970.00 |
TTSIOD 3D Renderer v2.2w |
每秒帧数(FPS) |
越大越好 |
39.01 |
Parallel BZIP2 Compression v1.0.5 |
秒数 |
越小越好 |
27.98 |
7-ZIP Compression v9.20.1 |
MIPS |
越大越好 |
7,242.00 |
LAME MP3 Encoding v3.99.3 |
秒数 |
越小越好 |
22.86 |
x264 v2011-12-06 |
每秒帧数(FPS) |
越大越好 |
54.04 |
FFmpeg v0.10 |
秒数 |
越小越好 |
17.57 |
OpenSSL v1.0.0e |
每秒签名数 |
越大越好 |
58.58 |
Himeno Benchmark v3.0 |
MFLOPS |
越大越好 |
516.47 |
PostgreSQL pgbench v8.4.11 |
TPS |
越大越好 |
427.13 |
Apache benchmark v2.2.21 |
每秒请求数 |
越大越好 |
11,784.34 |
C-Ray v1.1 |
秒数 |
越小越好 |
120.23 |
POV-Ray v3.6.1 |
秒数 |
越小越好 |
1,129.00 |
Smallpt v1.0 |
秒数 |
越小越好 |
241.00 |
TSCP v1.81 |
每秒计算的节点数 |
越大越好 |
261,528.00 |
NAS Parallel benchmarks v3.3 |
总的Mop/s |
越大越好 |
70.06 |
STREAM v2009-04-11 |
MB/s |
越大越好 |
6,381.28 |
归根到底,计算机的性能最本质的定义是“完成一个任务所需要的时间”。计算机系统完成某个任务所花费的时间,我们称为执行时间。
在比较两台机器(X和Y)的性能时,X的速度是Y的n倍是指Y的执行时间是X的执行时间的n倍。