一.工具介绍
- 前言
SPEC2006 benchmark是SPEC新一代的行业标准化的CPU测试基准套件。重点测试系统的处理器,内存子系统和编译器。这个基准测试套件包括的SPECint基准和SPECfp基准。主要依赖于gcc,g++,gfortran并与其 版本息息相关。 其中SPECint2006基准包含12个不同的基准测试和SPECfp2006年基准包含19个不同的基准测试。SPEC设计了这个套件提供了一个比较标准的计算密集型,高性能的跨硬件的CPU测试工具。在SPEC2006基准有几种不同的方法来衡量计算机性能。 一种方式是测量计算机完成单一任务的速度; 另一种方式吞吐量,容量或速率的测量。 说明:由于spec2006支持多种类型操作系统。以下安装、测试、移植等介绍均基于Unix 和其他的 Unix-like system如linux。Windows系统不在此范围内。
- 比较
2006年8月24日,标准性能评估公司(SPEC)宣布CPU2006将取代SPEC2000。 Spec2006基准测试被广泛的应用于工业界和学术界。新套件比Spec2000要大很多,而且将涵盖到CPU、存储器系统、编译器特别是 C++编译器。cpu2000只有1个关于C++的基准测试,CPU2006则含有7个相关套件,这其中包括了50W行c++代码,Fortran和C语言和之前一样有很好的覆盖
2017年6月(SPEC)又发布了新一代的CPU测试工具SPEC2017其相较于SPEC2006也有做了和多的升级,具体的升级点可以查看官网SPEC官网
- 跑分细则
其跑分主要分为四个部分:1.INT整形单线程 2.INT整形满线程 3.FP浮点单线程 4.FP浮点多线程
1. 其中"int"整形跑分项为11项分别如下:
400.perlbench:C语言编写,同spec2000的253.perlbmk类似,是Perl V5.8.7版本的删减版,同样删除了一下操作系统特性有关的东西,增加了第三方的模块,如:SpamAssassin V2.61,Digest-MD5v2.33 HTML-Parser v3.35,MHonArc V2.6.8,IO-stringy V1.205,MailTools V1.60,TimeDate V1.16。400.perlbench采用3个脚本进行增加负载或工作。1.主要的负载在于打开 垃圾邮件过滤软件SpamAssassin。采取的 过滤方式是采用记分制,也就是说会根据我们所设定的标准来给予分数超过标准值的时候即判定为 SPAM(垃圾邮件),其余为非垃圾邮件。但对SpamAssassin软件做了很大程度的修改,避免一些I/0操作,并且没 有使用贝叶斯过滤。2.是比较流行的email到HTML的转换器MHonArc 3.使用了spec2006的工具套件specdiff。
401.bzip2:C语言实现,同spec2000的256.bzip2类似,基于Julian Seward的bzip2 v1.03.唯一的不同是SPEC中的bzip2除了输入外,无文件I/O。所有的压缩和解压都在内存中进行。输入,输出都和gzip的相似。负载包括六个部分:两个小的JPEG图片、一个程序、一个tar包起的几个源程序文件、一个HTML文件、混合文件,包括压缩起来的高可压缩文件及不怎么可压缩的文件。测试分别使用了三个不同的压缩等级进行压缩和解压缩
403.gcc:C语言实现,同spec2000的176.gcc类似。该测试是基于gcc V3.2,为AMDCPU生成机器码。相比spec2000的176.gcc,该测试有更多的输入文件,因此测试压力会更大,负载来源于对9组C代码进行编译。
429.mcf:C语言实现,同时需要libm库支持,同spec2000的181.mcf类似,MCF是一个用于大型公共交通中的单站车辆调度的程序。但对输入文件做了一定的修改,由32位变成64位,用以兼容64位系统。并且增加了cache命中和程序的性能。相比spec2000的181.mcf来说,占用的内存由之前的100M-190M变为860M-1700M。
445.gobmk:C语言实现,同spec2000的186.crafty类似。不同的是这里是实现的围棋游戏。相比spec2000程序更复杂。
456.hmmer:C语言实现。HMMER是基于隐马尔可夫模型(profile HMMs),用于生物序列分析工作。同Timed HMMer Search 类似。
458.sjeng:C语言实现。基于一种象棋游戏Sjeng11.2,属于人工智能的范畴。
462.libquantum: C语言实现(C99)。libquantum是模拟量子计算机的库文件,用来进行量子计算机应用的研究。
464.h264ref: C语言实现。一种视频压缩程序,基于H264AVC 9.3版,去除了I/O和平台相关的东西。
471.omnetpp: C++语言实现。OMNeT++,离散事件仿真。包括约8000台计算机和900个交换机/集线器,以及混合了各种从10Mb到1000Mb速率的大型CSMA/CD协议以太网络模拟。
473 astar:C++语言实现,实现了2D寻路算法A的三种不同版本。
2. 其中"fp"浮点跑分项为12项分别如下: 其中"fp"浮点跑分项为17项分别如下:
410.bwaves:Fortran 77语言实现,流体力学范畴。对三维瞬跨音速粘性流中冲击波的模拟计算
416.gamess:Fortran语言实现,量子化学范畴。采用GMAESS组件,包含 胞嘧啶分子、水和Cu2+离子、三唑离子等3种SCF自洽场计算。
433.milc:C语言实现,量子力学范畴,采用MILC组件,包含用来研究QCD量子色动力学、夸克及胶子的四维SU(3)格点规范理论的模。
434.zeusmp :Fortran 77/REAL8语言实现,属于计算流体力学范畴,ZEUS-MP程序,用来计算理想、非相对论条件下的流体力学和磁流体力学,zeusmp模拟计算了一个统一磁场中的3D冲击波。
435.gromacs :C & Fortran语言实现,属于生物化学/分子力学范畴。GROMACS是一个分子力学计算套件,然而也可以用于非生物系统,gromacs模拟了在一个水和离子溶液中的蛋白质溶菌酶结构在各种实验手段如核磁共振的X光照射下的变化。
436.cactusADM:Fortran 90, ANSI C语言实现,物理中的广义相对论。来源于CactusBenchADM。cactusADM对时空曲率由内部物质决定的爱因斯坦演化方程进行求解,爱因斯坦演化方程由10个标准ADM 3+1分解的二阶非线性偏微分方程组成。
437.leslie3d :Fortran 90语言实现,属于流体力学范畴。 LESlie3d是用来计算湍流的计算流体力学程序,leslie3d计算了一个如燃油注入燃烧室的时间分层混合流体。
444.namd:C++语言实现。属于生物/分子学范畴。NAMD是一个大型生物分子系统并行计算程序,namd模拟了了92224个原子组成的A-I载脂蛋白
447.dealII:C++语言实现。进行有限元分析,w/Boost lib 、deal.II lib、deal.II是定位于自适应有限元及误差估计的C++库,dealII对非常系数的亥姆霍兹方程进行求解,它使用了基于二元加权误差估计生成最佳网格的自适应方法,该方程在3维得解。
450.soplex:C++语言实现。采用Plex v1.2.1程序,Plex使用单纯形算法解线性方程
453.povray:ISO C++ 语言实现。 POV-Ray POV-Ray是一个光线追踪渲染软件,povray渲染一幅1280x1024的反锯齿国际象棋棋盘图像 (12)
454.calculix:Fortran 90 & C语言实现,结构力学范畴。CalculiX是一个用于线性及非线性三位结构力学的有限元分析软件,454.calculix计算了一个高速旋转的压缩盘片在离心力的作用下的应力和变形情况
459.GemsFDTD:Fortran 90语言实现。属于电磁学范畴。GemsFDTD使用FDTD(有限差分时域)方法求解三维时域中的麦克斯韦方程,计算了一个理想导体的雷达散射截面
465.tonto: Fortran 95实现。量子化学范畴Tonto是一个面向对象的量子化学程序包,465.tonto计算面向量子晶体学,它基于一个符合X光衍射实验数据的、约束的分子Hartree-Fock波函数
470.lbm :ANSI C语言实现。lbm使用LBM(格子波尔兹曼方法)模拟非压缩流体,它模拟了两种情况:类似活塞推动的剪切驱动流体和管道流体,测试包含了3000个步骤
481.wrf :Fortran 90 & C语言实现。WRF v2.0.2 481.wrf基于WRF(Weather Research and Forecastin)模型,对NCAR的数据进行了计算,数据包括了UTC 2001.06.11到UTC 2001.06.12以三小时为间隔的数据
标签:实现,性能,CPU,C++,C语言,Fortran,测试,spec2000,SPEC2006 From: https://www.cnblogs.com/xiaomawo/p/18000165