2011年11月03日 13:10 来源:电子发烧友 作者:小兰 我要评论(0)
linpack的英文全称是Linear system package,主要开始于 1974年4月, 美国 Argonne 国家实验室应用数学所主任 Jim Pool, 在一系列非正式的讨论会中评估,建立一套专门解线性系统问题之数学软件的可能性。 后来便提出了LINPACK 计划案送到国家科学基金会 (National Science Foundation ) 审核, 经国家科学基金会同意并提供经费。
linpack的由来:
计算机硬件的不断的升级带来了系统处理性能持续的提高,如何的对平台的性能作出正确的判断就是性能测试的主要目标,业界也有多种测试基准,有的是基于实际的应用种类如TPC-C,有的是测试系统的某一部分的性能,如测试硬盘吞吐能力的IOmeter,测试内存带宽的stream。本文将对几个常见且权威的测试基准以及其使用方法作一下介绍。
Linpack有哪些用途:LINPACK主要的特色是: 1、率先开创了力学 (Mechanics) 分析软件的制作。 2、建立了将来数学软件比较的标准。 3、提供软件链接库, 允许使用者加以修正以便处理特殊问题, (当然程序名称必须改写, 并应注明修改之处, 以尊重原作者, 并避免他人误用。) 4、兼顾了对各计算机系统的通用性, 并提供高效率的运算。 至目前为止, LINPACK 还是广泛地应用于解各种数学和工程问题。 也由于它高效率的运算, 使得其它几种数学软件例如 IMSL、 MATLAB 纷纷加以引用来处理矩阵问题, 所以足见其在科学计算上有举足轻重的地位。Linpack性能测试基准: Linpack现在在国际上已经成为最流行的用于测试高性能计算机系统浮点性能的benchmark。通过利用高性能计算机,用高斯消元法求解一元N次稠密线性代数方程组的测试,评价高性能计算机的浮点性能。 Linpack测试包括三类,Linpack100、Linpack1000和HPL。Linpack100求解规模为100阶的稠密线性代数方程组,它只允许采用编译优化选项进行优化,不得更改代码,甚至代码中的注释也不得修改。Linpack1000要求求解规模为1000阶的线性代数方程组,达到指定的精度要求,可以在不改变计算量的前提下做算法和代码上做优化。HPL即High Performance Linpack,也叫高度并行计算基准测试,它对数组大小N没有限制,求解问题的规模可以改变,除基本算法(计算量)不可改变外,可以采用其它任何优化方法。前两种测试运行规模较小,已不是很适合现代计算机的发展,因此现在使用较多的测试标准为HPL,而且阶次N也是linpack测试必须指明的参数。 HPL是针对现代并行计算机提出的测试方式。用户在不修改任意测试程序的基础上,可以调节问题规模大小N(矩阵大小)、使用到的CPU数目、使用各种优化方法等来执行该测试程序,以获取最佳的性能。HPL采用高斯消元法求解线性方程组。当求解问题规模为N时,浮点运算次数为(2/3 * N^3-2*N^2)。因此,只要给出问题规模N,测得系统计算时间T,峰值=计算量(2/3 * N^3-2*N^2)/计算时间T,测试结果以浮点运算每秒(Flops)给出。Linpack测试图:使用LINPACK需要注意的一些问题:? LINPACK中浮点运算的比例很高,但有一些运算很少用到,比如浮点除法。? 在LINPACK测试中执行时间大部分用在了一小部分代码模块上,所以只需要很小的一块指令内存缓冲区即可有很高的命中率。? 数据命中率对内存大小要求很高(相对与代码),LINPACK对内存的设置很敏感,200*201与200*200规模的数组计算在内存中的映射可能不同,从而导致执行时间有一个相当程度的变化(详细见CLINPACK代码),所以在进行测试的时候需要根据内存情况进行求解规模的设置,以求的测得的性能最优。? 针对测试可以进行并行计算的硬件平台选用HPL比较合适,注意在进行HPL测试时需要安装并行测试软件(MPICH2)与BLAS(Basic Linear Algebra Subprograms)库,推荐使用GotoBlas2。详细的安装测试方法可以参考相关文档。