linpack学习记录

  基准测试程序(Benchmark)用来测量机器的硬件最高实际运行性能,以及软件优化的性能提升效果,可分为微基准测试程序(Microbenchmark)和宏基准测试程序(Macrobenchmark)

微基准测试程序用来测量一个计算机系统的某一特定方面,如CPU定点/浮点性能、存储器速度、I/O速度、网络速度或系统软件性能(如同步性能);宏基准测试程序用来测量一个计算机系统的总体性能或优化方法的通用性,可选取不同应用,如Web服务程序、数据处理程序以及科学与工程计算程序。

微基准测试程序

STREAM:由John McCalpin设计的测量持续存储器带宽和计算速度的测试程序,包含Copy、Scalar、Add和Traid四个函数,分别用来执行向量拷贝、向量更新拷贝、向量加法和向量更新。STREAM2包含Fill、Copy、Daxpy和Sum四个函数,分别用来执行向量赋值、向量拷贝、向量更新和向量求和。STREAM的指标为实测存储器带宽(MB/s)。

LMBENCH:用来测量OS开销和处理器、缓存、存储器、网络以及磁盘之间的数据传输能力。

宏基准测试程序

Linpack:20世纪70年代中期开发了IAnpack软件用于解线性方程,因为Linpack使用广泛且其指标几乎可以在所有参加测试的系统上得到,国际上一般用Linpack测试出的最高性能指标作为衡量机器性能的标准。每年两次更新并发布的世界超级计算机500强排行榜(TOPS00)即按Linpack测试值排序。

LINPACK是线性系统软件包(Linear system package) 的缩写计算机硬件的不断的升级带来了系统处理性能持续的提高,如何的对平台的性能作出正确的判断就是性能测试的主要目标,业界也有多种测试基准,有的是基于实际的应用种类如TPC-C,有的是测试系统的某一部分的性能,如测试硬盘吞吐能力的IOmeter,测试内存带宽的stream。

Linpack测试包括三类:Linpack100、Linpack1000和HPL。

Linpack100求解规模为100阶的稠密线性代数方程组,只允许采用编泽优化选项进行优化,不得更改代码,甚至代码中的注释也不得修改。

Linpack1000要求求解规模为1000阶的线性代数方程组,达到指定的精度要求,可以在不改变计算量的前提下做算法和代码上的优化。

HPL(High Performance Linpack)也叫高度并行计算基准测试对数组大小N没有限制,求解问题的规模可以改变,除基本算法(计算量)不可改变外,可以采用其他任何优化方法。

前两种测试运行规模较小,已不适合现代计算机的测试,因此一般使用Linpack即指HPL。

HPL是针对现代并行计算机提出的测试方式。用户在不修改任意测试程序的基础上,可以调节问题规模大小N(矩阵大小)、使用到的CPU数目、使用各种优化方法等来执行该测试程序,以获取最佳的性能。HPL采用高斯消元法求解线性方程组。当求解问题规模为N时,浮点运算次数为(2/3 * N^3+2*N^2)。因此,只要给出问题规模N,测得系统计算时间T,峰值=计算量(2/3 * N^3+2*N^2)/计算时间T,测试结果以浮点运算每秒(Flops)给出。

    HPLinpack的核心算法是求解阶 为n 的线性方程:Ax=b,A∈Rn×n ,x,b∈Rn 。算法首 先使用行选主元高斯消元法对系数矩阵 [A,b]进 行 LU 分 解:Pr[A,b]= [LU], [ ]y ,Pr,L,U ∈ Rn×n,y∈ Rn 。LU 分解 完 成 后,解 原 方 程 等 价 于 求解上三角方程Ux =y。 从上 述 介 绍 可 以 看 出,HPLinpack 测试 程 序 的执行分为 LU 分解 和 回 代 两 个 过 程。其 中,LU 分解过程的浮点操作次数为 (2/3)n- (1/2)n (-(1/2)n)在计算机中相对影响很小,忽略不计); 回代过程的浮点操 作 次 数 为2n 

   所以总的浮点操作运算次数为:分解操作运算次数+回代浮点运算次数(2/3 * N^3+2*N^2)

   

LINPACK主要的特色是:

1、率先开创了力学 (Mechanics) 分析软件的制作。

2、建立了将来数学软件比较的标准。

3、提供软件链接库, 允许使用者加以修正以便处理特殊问题, (当然程序名称必须改写, 并应注明修改之处, 以尊重原作者, 并避免他人误用。)

4、兼顾了对各计算机系统的通用性, 并提供高效率的运算。

 LINPACK 还是广泛地应用于解各种数学和工程问题,是数学库测试程序。 也由于它高效率的运算, 使得其它几种数学软件例如IMSL、 MATLAB 纷纷加以引用来处理矩阵问题, 所以足见其在科学计算上有举足轻重的地位。

Linpack现在在国际上已经成为最流行的用于测试高性能计算机系统浮点性能的benchmark。通过利用高性能计算机,用高斯消元法求解N元一次稠密线性代数方程组的测试,评价高性能计算机的浮点性能。

计算峰值

随着产品硬件的不断的升级,整个的计算能力也以数量级的速度提升。衡量计算机性能的一个重要指标就是计算峰值,例如浮点计算峰值,它是指计算机每秒钟能完成的浮点计算最大次数。包括理论浮点峰值和实测浮点峰值:

理论浮点峰值是该计算机理论上能达到的每秒钟能完成浮点计算最大次数,它主要是由CPU的主频决定的,

理论浮点峰值=CPU主频×CPU每个时钟周期执行浮点运算的次数×系统中CPU核心数目。

实测浮点峰值是指Linpack测试值,也就是说在这台机器上运行Linpack测试程序,通过各种调优方法得到的最优的测试结果。实际上在实际程序运行过程中,几乎不可能达到实测浮点峰值,更不用说达到理论浮点峰值了。这两个值只是作为衡量机器性能的一个指标,用来表明机器处理能力的一个标尺和潜能的度量。

硬件准备

准备硬件平台的配置

升级到最新的BIOS、BMC等版本

调整对性能有影响的参数设置

软件准备

操作系统的准备。由于OS自身也会占用系统资源,因此一般会使用linux作为linpack测试的OS平台,采用最新的内核版本的linux,这样可以充分的发挥出硬件的新的特性,发挥出平台的计算性能;在系统启动后,将一些没有必要的系统守护进程去掉,可以运行ntsysv命令,关闭除了irqbalance 和 messagebus.之外的系统服务进程,也可以节省系统的资源;并且将操作系统启动到第3级,不进入图形方式。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值