Chinaunix首页 | 论坛 | 博客
  • 博客访问: 489567
  • 博文数量: 86
  • 博客积分: 4052
  • 博客等级: 上校
  • 技术积分: 914
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-01 15:21
个人简介

If you don’t like this government, it won’t last forever.

文章分类

全部博文(86)

文章存档

2016年(2)

2015年(1)

2014年(4)

2013年(4)

2008年(4)

2007年(53)

2006年(17)

2005年(1)

我的朋友

分类:

2007-09-29 15:47:48

目前高性能计算基准测试程序分类

 

 

 

基准测试程序

基准测试程序(Benchmark)用于测试和预测计算机系统的性能,揭示不同结构机器的长处和短处,为用户决定购买或使用那种机器最合适他们的应用要求提供决策。基准测试程序试图提供一个客观,公正的评价机器性能的标准。但真正做到完全公正并非易事,要涉及到因素很多,包括硬件,体系结构,编译优化,编程环境,测试条件,解题算法等。一组标准的测试程序要提供一组控制测试条件和步骤的规范说明,包括测试平台环境,输入数据,输出结果和性能指标等。

不同的基准测试程序,侧重目的不同:有的测试CPU性能,有的测试文件服务器性能,有的测试输入、输出界面,有的测试网络通讯速度等。根据不同用途,测试程序可有专用和通用之分。目前国际上流行的通用测试程序可分为几类:

1.综合型(如Dhrystone,Whetstone等);

2.核心型(如Livemore Fortran Kernals,NASANAS等);

3.数学库(如Linpack,FFT等);

4.应用型(如SPECPerfect,Splash等);

5.并行型(如NASNPB,PARKBENCK等)。

这里介绍的一些常见的测试程序,它们都可以在internet上公开查到:。在这里你可查到LINPACK,LAPACK,BLAS,BLACS,Livemore,Loops,Dhrystone,Whetstone,NAS,SPEC,Sim等包含源代码的基准测试程序。

基准测试程序


Whetstone
它是为比较不同的计算机的浮点性能而设计的综合型基准测试程序,最早用Algol-60写成,后用Fortran改写。这是从英国国立物理实验室1970年是常用的数值计算程序中取出的最频繁使用的有代表性的程序段。这些程序段语句转换到称为Whetstone虚拟计算机上的指令,因而得名Whetstone基准测试程序。此基准测试程序包括整数运算,又包括浮点运算,涉及到数组下标索引,子程序调用,参数传递,条件转移和三角、超越函数等,使用系统完成的Kwhetstone/s数度量。
测试程序可以访问netlib/benchmark/whetstone


Dhrystone
它主要为测试整数与逻辑运算性能二设计的综合型基准测试程序,用Ada,CPascal完成,它是CPU密集(CPU-intensive)型测试程序,由很多整型语句和逻辑语句的小循环组成。它使用系统完成的Kdhrystone/s数度量。
测试程序可访问netlib/benchmark/dhrystone

人们对WhetstoneDhrystone这两者综合型基准测试程序的批评是,它们不能预测用户程序性能,这些基准测试程序的主要缺点是对编译程序比较敏感。


SPEC
Standard  Performance Evaluation cooperation的首字母缩写,它是作为NCGA(National computer graphics association)的一个小组20世纪80年代创立,这个小组的创始者来源于HP,DEC,MIPSSUN,他们拥有一组基准测试程序以评测新机器的性能。第一组基准测试程序叫SPEC89,包含10个程序; SPEC92扩从到20个程序,6个整数程序,和14个浮点程序分别称为SPECint92,SPECfp92。随后SPEC又发布了一些新的基准测试程序(如SPEC95,SPEChpc96,SPECweb96, SPEC2000等)。SPEC原主要是测试CPU性能的,现在强调开发能反映真实应用(如实际负载等)的基准测试程序,并已推广至客户/服务器计算,商业应用,I/O子系统等。
SPEC
基准测试程序使用的单位是所测试机器执行性能与XAX11/780执行性能之比值。

数学库测试程序


Linpack
20世纪70年代中期以来,国际上曾经开发过一批基于Fortran语言的求解线性代数方程组的子程序,于1979年正式发布了LinPACK包。因为线性代数方程组在各个领域中应用甚广,所以该软件包就很自然地称为测试各种机器性能的测试程序。LinPACK测试的基准是用全精度的64位字长的子程序求解100阶线性方程组的速度,测试的结果以Mflops(每秒百万次浮点运算)作为单位给出。LinPACK的测试报告由J.Dongarra经常更新发布(通常每月发布一次)。LinPACK是使用BLASI(Basic Algebra Subprogramsl)的第一个线性代数软件包。BLAS1执行通常意义下的标量(如标量乘向量,向量加,向量内积等),主要为向量计算机而设计的,它用Fortran 77写成,但有些计算机商也提供汇编语言的BLAS1版本。
LAPACK
尽管LinPACK作为测试程序现在仍很有生命力,但作为实际求解线性代数问题的软件包已经落伍了。所以在1992年推出了代替LinPACK以及EisPACK(特征值软件包)的LAPACK,它使用了数值线性代数中最新,最精确的算法,同时采用了大型矩阵分解成小矩阵的方法从而可有效地使用存储器。LAPACK是建立在BLAS1 ,BLAS2,BLAS3的基础上的,其中BLAS2执行矩阵-向量运算,BLAS3执行矩阵-矩阵运算。
ScaLAPACK
LAPACK的增强版,主要为可扩放的,分布存储的并行计算机而设计的。ScaLAPACK支持稠密和带状矩阵上各类操作,诸如乘法,转置和分解等。在国际上,ScaLAPACK例程可以加入多个并行算法,并且可根据数据分布,问题规模和机器大小选择这些算法,然而用户却不必关心这些细节。

并行测试程序


NAS parallel Benchmark(NPB)
它是1991年美国NAS(Numerical Aerodynamic Simulation)项目所开发的并行测试程序,其目的是为了比较各种并行机的性能,有时也称为NPB(NAS Parallel Benchmark)并行测试程序,系由8个程序组成,测试范围从整数排序到复杂的数值计算。测试结果以单位处理机的CrayY-MP/1为单位(Class A)Cray C90/1为单位(Class B)作比较。
NPB
5个核心程序组成:

1.EP(Embarrassingly parallel)用于计算Gauss 伪随机数,因为它几乎不要求处理器之间相互通讯,所以很适合于并行计算,而所测得的结果往往可以作为一个特定并行系统浮点计算性能可能达到的上限;

2.MG(MultiGrid):用4V循环多重网格算法求解三维波松方程的离散周期近似解;

3.CG (Conjugate Gradient):用于求解大型稀疏对称正定矩阵的最小特征值的近似值,它表征了非结构风格计算和非规整远程通信计算类问题:

4.FT(Fast Fourier Transformation):用于求解基于FFT谱分析法的三维偏微分方程,它也要求远程通信;

5.IS(Integer sort):用于基于桶排序的二维大整数排序,他要求大量的全交换通信。

另外还有计算流体力学中3个模拟程序:

1.LU(lower upper triangular):用于基于对称超松弛法求解块稀疏方程组;

2.SP(scalar penta-diagonal):用于求解5对角线方程组;

3.BT(Block Tri-Diagonal): 用于求解3对角块方程组。
有关NAS并行基准测试程序的地址为

PARKBENCH (PARallel Kernels and BENCHmarks)
是在1992年超级计算会议上确定的项目。与会者认为并行测试的重点应放在可扩放,分布存储,消息传递的体系结构上。主要目标是确定并行机用户和厂商双方都能接收的内容丰富的一批并行测试程序及标准,并把结果公布于网络上,以减少不必要的重复工作。


现在的基准程序系为分布的多计算机编写,使用Fortan 77加上PVMMPI;为共享存储结构的Fortan90HPF版本的基准程序正在开发中。

目前,PARKBENCH包括4类:

1.底层基准程序:测试一些基本结构参数,诸如算数运算速度,高速缓存和存储器速度,通讯启动时间和带宽以及同步开销等;

2.核心基准程序:涉及到广泛的经常使用的科学计算子程序,诸如矩阵运算(稠密矩阵乘法,转置,LU分解,QR分解,矩阵三对角等),FFT运算,求解PDENPB核基准程序等;

3.密集应用基准程序:目前仅包括谱变换,浅水( shallow-water)模拟和3NPB模拟应用程序;

4.HPF编译基准序;测试HPF编译器性能,主要集中在显式并行HPF结构的并行实现上。
PARKBENCH
是个正在研究的课题,测试程序的内容尚未完全定型。目前所包含的核心测试程序主要来自PB

阅读(5569) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~