基准测试程序的认知与分析 —— SPEC基准测试程序集的深入探索
一、实验目的:
- 了解和掌握Spec基准程序测试
- 对基准程序测试结果进行分析和比较
二、实验准备知识:
-
计算机系统设计和分析的量化原则。
计算机系统设计和分析的量化原则是指导计算机系统架构设计与评估的一系列准则,它们帮助工程师和设计师做出基于数据和性能考量的决策。包含大概率事件优先原则、Amdahl定律、程序的局部性原理。
-
性能分析指标的计算方法。
性能分析指标的计算方法是计算机系统设计、优化和评估中的关键组成部分,它们帮助理解和量化系统在执行任务时的表现。包含CPU执行时间(CPU Execution Time)、CPI(Clock Cycles Per Instruction)、MIPS(Million Instructions Per Second)、FLOPS(Floating Point Operations Per Second)、IPC(Instructions Per Cycle)、SPEC Rate、吞吐量(Throughput)、响应时间(Response Time)、效率(Efficiency)、能耗(Energy Consumption)、 性能功耗比(Performance per Watt)。
三、实验内容与步骤:
1. 打开网站,查看benchmark
SPEC(Standard Performance Evaluation Cooperation)基准测试程序集是用于评估计算机系统性能的一系列标准化测试。这些测试旨在提供公正的比较,帮助用户根据不同的应用需求选择合适的计算机系统。
(1)下面是比较不同版本的SPEC基准测试程序集的特点:
SPEC89
- 特点:SPEC的第一版,包含10个测试程序,主要用于测试当时的计算机系统。
- 测试特性:早期的CPU性能测试,包括整数和浮点运算。
SPEC92
- 特点:SPEC92扩大了测试范围,共有20个测试程序,包括6个整数测试程序(SPECint92)和14个浮点测试程序(SPECfp92)。
- 测试特性:提供了更全面的CPU性能评估,涵盖了更广泛的计算任务。
SPEC95
- 特点:进一步扩展和改进了测试程序集,提高了测试的多样性和复杂性。
- 测试特性:评估了包括科学计算在内的更多应用领域的性能。
SPEChpc96
- 特点:专注于高性能计算领域的测试。
- 测试特性:用于评估超级计算机和高性能工作站的性能。
SPECweb96
- 特点:首次引入了专门用于评估Web服务器性能的测试程序集。
- 测试特性:模拟Web服务器处理多个并发请求的能力。
SPEC2000
- 特点:更新了测试程序集,以反映当时的技术发展。
- 测试特性:评估了现代工作站和服务器的性能,包括整数和浮点运算。
SPECCPU2006
- 特点:这一版本增加了更多的测试程序,提高了对现代处理器和编译器的覆盖。
- 测试特性:评估了桌面系统和单处理器服务器的性能,包括整数(CINT2006)和浮点(CFP2006)运算。
SPECCPU2017
- 特点:最新版本,进一步扩展了测试范围,包括了43个测试程序,分为Int Speed、FP Speed、Int Rate和FP Rate四个套件。
- 测试特性:涵盖了更广泛的计算任务,包括人工智能、生物医学、图像处理等领域。
(2)SPEC其他测试程序集
除了CPU性能测试,SPEC还推出了针对不同应用领域的测试程序集,例如:
- SPECviewperf:用于测试可视化计算性能。
- SPECapc:基于应用的图形性能测试。
- SPECMPI2007:测试MPI并行性能。
- SPECCOMP2001:测试共享存储器并行处理系统的性能。
- SPECjAppServer:评估Java应用服务器性能。
- SPECjbb:使用典型Java商业应用测试服务器性能。
- SPECjms:测试基于JMS的消息中间件服务器性能。
- SPECjvm:Java运行时环境性能测试。
- SPECmail:企业级邮件服务器性能测试。
- SPECsfs:文件服务器性能测试。
- SPECpower ssj2008:服务器级别的计算机功耗和性能测试。
- SPECweb:Web服务器性能测试。
每个版本的SPEC基准测试程序集都反映了当时计算机技术和应用的发展趋势,它们被设计用于评估不同类型的工作负载,从科学计算到商业应用,再到网络服务和图形处理。随着技术的进步,新的测试程序集被开发出来以更准确地反映现代计算机系统的性能特征。
2. 查看result table,分析SPEC2017的测试方法、测试组建类型和评价指标的含义
SPEC CPU 2017(简称SPEC2017)是Standard Performance Evaluation Corporation(SPEC)推出的一套用于评估和比较计算机系统中CPU子系统性能的基准测试套件。SPEC2017的设计目标是提供一个全面的、可重复的、客观的性能测量工具,能够反映实际应用的负载。
测试方法
SPEC2017的测试方法主要包括两部分:Speed和Rate。Speed测试衡量的是单个任务的完成时间,而Rate测试则衡量在单位时间内能够完成的任务数量,即吞吐量。
Speed测试
- Speed测试关注的是完成一个给定任务的速度,即运行时间越短,性能越高。它反映了系统在执行单个任务时的性能。
Rate测试
- Rate测试关注的是单位时间内系统能够处理的任务数量,即吞吐量。它反映了系统在并行处理多个任务时的性能。
测试组件类型
SPEC2017包括四种主要的测试组件类型:
-
Int Speed
- 这是整数运算的Speed测试。
-
FP Speed
- 这是浮点运算的Speed测试。
-
Int Rate
- 这是整数运算的Rate测试。
-
FP Rate
- 这是浮点运算的Rate测试。
评价指标
SPEC2017的评价指标通常以SPEC rate或SPEC speed的形式给出,它们的含义如下:
-
SPEC rate:表示在单位时间内可以完成的基准测试任务数量,是一个吞吐量指标,通常以每分钟完成的测试数量来表示(如SPECint_rate2017_base、SPECfp_rate2017_base)。
-
SPEC speed:表示完成单个基准测试任务所需的时间,是一个速度指标,通常以完成测试所需的时间来表示(如SPECint_speed2017_base、SPECfp_speed2017_base)。
SPEC2017的测试结果提供了对CPU性能的深入洞察,可以帮助用户和制造商在不同系统之间进行客观的性能比较。
对于图上的base和peak代表的含义仍有疑惑,根据参考文献感觉含义应当大致如此
3. 得出一些结论:
-
横向对比:
- 运行基准测试时启用的核心数量多,性能越好
- 配置编译选项更全时,性能表现略高于标准简单配置
-
纵向对比,从上到下为float rate;float speed;integer rate,integer rate;
同一台电脑,float rate<integer rate;float speed > integer speed
参考文献:
- 杜琦, 黄卉, 龚盛, 刘新娃, 黄春. Intel Cascadelake架构 CPU SPEC CPU2017评测[J/OL]. 计算机工程与科学, 2020.
- 吕超, 戴晨, 张为华. 计算机体系结构基准测试程序集的研究[J]. 计算机应用与软件, 2013, 30(10).
- 徐洁, 王华, 吴晓华, 王雁东. 浅析 SPEC基准测试程序集及评价指标[J]. 实验科学与技术, 2010, 8(6).
网址:
- SPEC官方网站:www.spec.org
- 相关学术论文数据库:CNKI