服务器工作站Benchmark标准点评
人们为了公平地比较不同的计算机系统的性能,开发出许多性能评价的Benchmark标准,我们常常听到SPECint, SPECweb, TPC等。没有一个标准能反映计算机系统的全部性能,它们代表的只是性能的一个侧面。这里简单介绍一些常用的计算机系统性能评价的Benchmark标准,以及它们所代表的性能上的具体含义。
● 定点性能
SPECint95:采用8个真实的应用,包括仿真技术、人工智能、图像处理、压缩算法、编译器、解释器和数据库,用这8个应用运行的标准时间,除以实际运行时间得到一个比值,SPEC_int95即是这8个比值乘积的开8次方得到的值,反映了评测系统的单处理器的定点运算性能。SPEC(Standard Performance Evaluation Corporation)是标准性能评价组织的缩写。
SPECint_base95:计算方法与SPEC_int95相同,不同的是SPEC_int95编译应用时采用最强的优化策略,SPECint_base95采用最保守的优化策略。
SPECint_rate95:允许每个应用同时运行多个实例,比值的计算方法是:运行次数*(应用标准运行时间*1天中的秒数/8个应用中最长的标准运行时间)/多次运行的总时间,SPECint_rate95即是这8个比值的乘积开8次方。因为允许运行多个应用实例,在有多个处理器的系统中,如SMP,它们可以同时运行,所以该值可以反映具有多个处理器系统的性能的可扩展性。
SPECint_base_rate95:含义与SPECint_rate95相同,采用最保守的编译优化策略。
SPECint2000:在SPECint95的基础上开发,变成了12个应用,包括压缩算法、编译器、优化组合、棋类游戏、字处理、可视化、PERL语言、群论解释器、面向对象数据库和仿真技术,计算方法和SPECint95类似。
Dhrystone:发布于1984年,主要包含两类语句,字符串赋值和字符串比较。评测结果为每秒Dhrystone操作数,每个操作为该Benchmark定义的操作序列。它的规模过小,不能评测内存的性能,过分强调字符串操作,不能完全反映系统定点运算的性能。一般,由于RISC系统具有大量的寄存器而获得比CISC系统较好的指标。
● 浮点性能
SPECfp95:采用10个真实的应用来评测系统的单处理器的浮点运算性能,应用包括流体力学、天气预报、量子物理、天文、电子等领域,计算方法和SPECint95类似。
SPECfp_base95:含义与SPECfp95相同,采用最保守的编译优化策略。
SPECfp_rate95:计算方法和SPECint_rate95相同,可以反映具有多个处理器系统的浮点性能的可扩展性。
SPECfp_base_rate95:含义与SPECfp_rate95相同,采用最保守的编译优化策略。
SPECfp2000:将SPECfp95的10个应用修改为14个应用,包含物理领域的量子色动、浅水模型、三维电势场、抛物线/椭圆偏微分方程、三维图像库、计算流体力学、图像识别/神经网络、地震波传播仿真、图像处理/人脸识别、计算化学、数论、有限元碰撞仿真、高性能物理加速器设计、和污染分布计算等领域,计算方法和SPECfp95类似。
Flops:通过指令的不同组合来得到浮点加、减、乘、除(FADD、FSUB、FMUL、FDIV)的计算能力,该Benchmark尽量使用寄存器,少与内存交互,得到我们通常所说的处理器峰值指标(MFLOPS)。Flops包含8个独立模块,除模块二外,都是对数学函数的综合应用。它反映系统单处理器的峰值浮点运算能力。
● Web服务性能
SPECweb96:SPEC组织开发的用来评测Web服务器性能的Benchmark,由客户端向服务器发送HTTP GET请求,SPECweb96值即是服务器每秒能够支持的连接数量。它评价了系统用作Web服务器时响应用户点击的性能。
SPECweb99:在SPECweb96的基础上开发的Web服务评测程序,假设每个客户端运行于400Kb/s的线路上,基于该假设得到的服务器最多支持的320Kb/s以上的客户端连接数,即为SPECweb99值。它不仅支持HTTP GET操作,还支持POST和Cookie操作,评价了Web服务器用作类似VOD服务时的性能。
Webstone:SGI在1995年开发的性能评价程序,评测服务器进行HTTP服务的性能。它基于客户机/服务器模式,模拟的多个客户端向服务器上的指定页面发送HTTP GET请求,Webstone的负载分布原则是尽可能多地向服务器请求页面和文件,反映Web服务的真实情况。负载由客户端数量和文件集确定,每个文件集由一定数量的文件组成,几个文件组成一个页面,代表页面内容由图像、动画、声音、文本多个文件构成,每个页面有与之相关的权重,其权重越高,则被访问的机会越大。客户端可以是真实的系统,也可以是模拟的进程。Webstone结果是系统的吞吐量(MB/s)、延迟(完成一个页面请求的时间)、每分钟传送的页面数目、平均连接率、失效率。用户通过配置,可以评测出系统在不同环境、不同负载模式下的Web服务性能。 #p#page_title#e#
● 数据处理性能
Debit Credit:1984年Tandem公司的Jim Gray提出的测试程序,是计算机系统的数据处理性能评价的最早版本。它模拟一个具有多家分支机构银行的出纳操作,采用California银行1970年的数据。简单起见,它只包含一种类型的事务,即银行存款帐户的行为。存款行为记录在四个随机存储的、可索引的文件中,分别是帐户文件、分支机构文件、出纳文件和操作顺序的历史数据文件。帐户的规模、分支机构数据是系统吞吐量函数,如每个TPS应配置10个分支机构,100个出纳员,100000个帐户信息。为了保证系统的可扩展性,每次出纳操作的时间被固定为100秒,测试系统规定合法的结果应有95%的事务在1秒内完成。
TPC-A:TPC(Transaction Processing Performance Council)成立于1988年,是事务处理性能评价标准组织。TPC系列Benchmark使用不同的输入和查询数据评测计算机系统进行事务处理和数据库操作的性能。TPC-A由一个简单的修改密集型事务处理组成,用来评价联机事务处理(OLTP)的性能,它1995年后已不再使用了。
TPC-B:集中式数据库处理的测试程序,不需要终端和网络,要求数据库操作有大量的磁盘I/O,中等的系统和应用执行时间,有很多处理之间的集成操作。它也不再使用了。
TPC-C:1992年开发的取代TPC-A的测试程序,需要远程终端模拟器能模拟出大量的终端用户。它模拟存在大量地理上分散的部门的企业的行为,数据库结构复杂得多,具有多种事务处理模型、执行模式、热点现象、全屏终端I/O格式化数据、透明的数据分区和事务处理的回滚等。TPC-C值代表了计算机系统运行具有大量用户和大量事务处理的应用的性能,一般表示为tpmC值和$/tpmC值。TpmC(Transactions Per Minute Computer)的含义是,在TPC-C的付款(payment)、订单状态查询(order-status)、发货(delivery)、库存级别(stock-level)和新订单(new-order)五种事务中,每种事务都有响应时间的要求,如new-order设置为5秒,tpmC就是系统在满足其它4类事务响应时间要求的前题下,在1分钟内处理new-order事务的数量。
TPC-D:决策支持应用的Benchmark,每个复杂的查询都要存取数据库的大部分数据,进行多次join, sort, group, scan等操作,用于测试系统支持耗时的、只读的数据库操作的性能。TPC-D测试结果极大程度地依赖于查询的优化、数据库表格的划分方法、SQL的效率、和高级索引技术。TPC-D包含17个复杂查询和2个修改操作。
● 系统软件性能
Lmbench:SGI开发的测试操作系统性能的Benchmark,可以测出各项操作系统指标,如空系统调用时间、进程切换时间,pipe、UDP、TCP、RPC的延迟和带宽,内存、Cache、TLB的读写性能,存储映射的性能等,既能反映计算机系统的一些基本性能指标,也能反映操作系统实现的优劣。
Netperf:计算机系统的网络性能评测程序,主要评测系统使用TCP、UDP、Socket传送数据时的性能,包括带宽和请求应答数,也可用来评测DLPI(Data Link Provider Interface),Unix Domain Socket, ATM API的性能。它按照客户机/服务器模式设计,结果数据是在用户设定的时间段内,两者之间传递的最大数据量。
SPECsfs97:评测系统的NFS性能,采用客户机/服务器模式,客户机向服务器发送特定的NFS请求,得到NFS文件服务器的吞吐量和响应时间。它既依赖于计算机系统的性能,也依赖于网络的性能。
SPECjvm98:使用8个应用来评测JAVA虚拟机的性能。
● 科学与工程计算性能
Linpack:最早的评测系统计算能力的Benchmark之一,linpack(LINear algebra PACKages)主要功能是解线性方程组和线性最小二乘问题,最早的矩阵大小为100x100,300x300,后来以1000x1000为标准;随着MPP、CC-NUMA、Cluster等大型并行计算机的出现,不再限定矩阵的规模。Linpack问题在大多数系统上很容易向量化,厂商进行精心优化,提高cache命中率,得到的计算饱和峰值常常是实际应用不可能达到的。 #p#page_title#e#
NAS:由美国NASA的NAS(Numerical Aerodynamic Simulation)研究组开发的科学计算性能评价标准,包含8个空气动力学计算类应用,其中含5个核心程序和3个伪应用,核心应用分别是EP、多重网格求解、共轭梯度方程求解、三维FFT、和整数排序。
开始NAS只是纸上标准,由厂商自行按最优方法编制程序,早期的巨型机和向量机都采用NAS Benchmark。随着并行机的出现,又有了并行版本NPB,厂商需要针对自己系统的体系结构,在并行粒度、数据结构、通信机制、处理器映射、内存分配、底层优化上下功夫。最近又有了NPB2标准,统一提供MPI语言编制的并行程序。
Perfect:即PERFormance Evatuation for Cost-effective Transformations评测程序,是由HPCG组织开发的用于评测传统的向量巨型机的标准。
SPLASH:Stanford大学开发的用于评测共享存储系统性能的测试程序。现在已发展到SPLASH-2,包含7个完整的应用和5个计算核心程序,它们都是科学与工程计算和计算机图形学方面的并行程序,主要用于评价SMP、CC-NUMA、DSM等共享存储类体系结构的计算机系统的性能。
ParkBench:用于评价大型可扩展系统的科学计算性能,有Fortran加消息传递、HPP多个版本,包括micro-benchmark, Kernel, Compact Application,Compiler四类Benchmark。底层的micro-benchmark用于测量单节点性能,目的是获取单处理器的有关体系结构和编译器的基本性能参数,以便更好地理解上层测试的结果。测试内容包括时钟调用、算术运算、内存带宽和延迟、通信延迟和带宽、全局同步操作性能等。核心测试包括矩阵运算、FFT、偏微分方程、NAS核心,和一个I/O Benchmark。简化应用测试包括气候模型、计算流体动力学、财务模型、分子动力学、等离子物理、量子化学、水库模型等。编译器测试主要是评价HPF编译器优化的效果。ParkBench很庞大,用于评价计算机系统支持各种具有不同需求的科学计算应用的性能