`
wusuoya
  • 浏览: 643138 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

Linpack性能测试环境搭建

 
阅读更多

搭建好SSH无密码访问,NFS和NIS后可以搭建Linpack性能测试环境

云计算系统的一个重要作用是向用户提供计算力,评价一个系统的总体计算力的方 法就是采用一个统一的测试标准作为评判,现在评判一个系统计算力的方法中最为知名的就是Linpack测试,世界最快500台巨型机系统的排名采用的就是 这一标准。掌握Linpack测试技术对于在云计算时代评判一个云系统的计算力也有着重要意义。本附录将对Linpack测试技术作详细的介绍。(mpi,GotoBlas,Linpack都要安装在nfs共享目录下,或者所有节点都统一目录安装)

1.Linpack安装

在安装之前,我们需要做一些软件准备,相关的软件及下载地址如下。

(1)Linux平台,最新稳定内核的Linux发行版最佳,可以选择Red hat, Centos等。

(2)MPICH2,这是个并行计算的软件,可以到http://www.mcs.anl.gov/research/projects/mp ich2/downloads/index.php?s=downloads下载最新的源码包。

(3)Gotoblas,BLAS库(Basic Linear Algebra Subprograms)是执行向量和矩阵运算的子程序集合,这里我们选择公认性能最好的Gotoblas,最新版可到http://www.tacc.utexas.edu/tacc - projects/下载,需要注册。

(4)HPL,linpack测试的软件,可在http://www.netlib.org/benchmark/hpl/ 下载最新版本。

安装方法和步骤如下。

(1)安装MPICH2,并配置好环境变量,本书前面已作介绍。

(2)进入Linux系统,建议使用root用户,在/root下建立linpack文件夹,解压下载的Gotoblas和HPL文件到linpack文件夹下,改名为Gotoblas和hpl。

 

  1. #tar xvf GotoBLAS-*.tar.gz
  2. #mv GotoBLAS-*  ~/linpack/Gotoblas
  3. #tar xvf  hpl-*.tar.gz
  4. #mv hpl-*  ~/linpack/hpl

(3)安装Gotoblas。

进入Gotoblas文件夹,在终端下执行./ quickbuild.64bit(如果你是32位系统,则执行./ quickbuild.31bit)进行快速安装,当然,你也可以依据README里的介绍自定义安装。如果安装正常,在本目录下就会生成 libgoto2.a和libgoto2.so两个文件。

(4)安装HPL。

进入hpl文件夹从setup文件夹下提取与自己平台相近的Make.<arch>文件,复制到hpl文件夹内,比如我们的平台为 Intel xeon,所以就选择了Make.Linux_PII_FBLAS,它代表Linux操作系统、PII平台、采用FBLAS库。

编辑刚刚复制的文件,根据说明修改各个选项,使之符合自己的系统,比如我们系统的详细情况为,Intel xeon平台,mpich2安装目录为/usr/local/mipch2,hpl和gotoblas安装目录为/root/linpack,下面是我们 的配置文件Make.Linux_xeon,对需要修改的部分我们做了注解,大家可以参考修改:

  1. # - shell --------------------------------------------------------------
  2. # ----------------------------------------------------------------------
  3. #
  4. SHELL        = /bin/sh  
  5. #
  6. CD           = cd  
  7. CP           = cp  
  8. LN_S        = ln -s  
  9. MKDIR       = mkdir  
  10. RM          = /bin/rm -f  
  11. TOUCH       = touch  
  12. #
  13. # ----------------------------------------------------------------------
  14. # - Platform identifier ------------------------------------------------
  15. # ----------------------------------------------------------------------  
  16. #  
  17. ARCH         = Linux_xeon   //设置平台类型  
  18. #  
  19. # ----------------------------------------------------------------------  
  20. # - HPL Directory Structure / HPL library ------------------------------  
  21. # ----------------------------------------------------------------------  
  22. #  
  23. TOPdir       = $(HOME)/linpack/hpl   //设置测试软件的根目录  
  24. INCdir       = $(TOPdir)/include  
  25. BINdir       = $(TOPdir)/bin/$(ARCH)  
  26. LIBdir       = $(TOPdir)/lib/$(ARCH)  
  27. #  
  28. HPLlib       = $(LIBdir)/libhpl.a   
  29. #  
  30. # ----------------------------------------------------------------------  
  31. # - Message Passing library (MPI) --------------------------------------  
  32. # ----------------------------------------------------------------------  
  33. # MPinc tells the  C  compiler where to find the Message Passing library  
  34. # header files,  MPlib  is defined  to be the name of  the library to be  
  35. # used. The variable MPdir is only used for defining MPinc and MPlib.  
  36. #  
  37. MPdir        = /usr/local/mpich2     //设置mpich的安装目录  
  38. MPinc        = -I$(MPdir)/include  
  39. MPlib        = $(MPdir)/lib/libmpich.a  
  40. #  
  41. # ----------------------------------------------------------------------  
  42. # - Linear Algebra library (BLAS or VSIPL) -----------------------------  
  43. # ----------------------------------------------------------------------  
  44. # LAinc tells the  C  compiler where to find the Linear Algebra  library  
  45. # header files,  LAlib  is defined  to be the name of  the library to be  
  46. # used. The variable LAdir is only used for defining LAinc and LAlib.  
  47. #  
  48. LAdir        = $(HOME)/linpack/GotoBLAS2     //设置gotoblas的目录  
  49. LAinc        =  
  50. LAlib        = $(LAdir)/libgoto2.a $(LAdir)/libgoto2.so  //加入库支持  
  51. #  
  52. # ----------------------------------------------------------------------  
  53. # - F77 / C interface --------------------------------------------------  
  54. # ----------------------------------------------------------------------  
  55. # You can skip this section  if and only if  you are not planning to use  
  56. # a  BLAS  library featuring a Fortran 77 interface.  Otherwise,  it  is  
  57. # necessary  to  fill out the  F2CDEFS  variable  with  the  appropriate  
  58. # options.  **One and only one**  option should be chosen in **each** of  
  59. # the 3 following categories:  
  60. #  
  61. # 1) name space (How C calls a Fortran 77 routine)  
  62. #  
  63. # -DAdd_              : all lower case and a suffixed underscore  (Suns,  
  64. #                       Intel, ...),                           [default]  
  65. # -DNoChange          : all lower case (IBM RS6000),  
  66. # -DUpCase            : all upper case (Cray),  
  67. # -DAdd__             : the FORTRAN compiler in use is f2c.  
  68. #  
  69. # 2) C and Fortran 77 integer mapping  
  70. #  
  71. # -DF77_INTEGER=int   : Fortran 77 INTEGER is a C int,         [default]  
  72. # -DF77_INTEGER=long  : Fortran 77 INTEGER is a C long,  
  73. # -DF77_INTEGER=short : Fortran 77 INTEGER is a C short.  
  74. #  
  75. # 3) Fortran 77 string handling  
  76. #  
  77. # -DStringSunStyle    : The string address is passed at the string loca-  
  78. #                           tion on the stack, and the string length is then  
  79. #                           passed as  an  F77_INTEGER  after  all  explicit  
  80. #                           stack arguments,                       [default]  
  81. # -DStringStructPtr   : The address  of  a  structure  is  passed  by  a  
  82. #                           Fortran 77  string,  and the structure is of the  
  83. #                           form: struct {char *cp; F77_INTEGER len;},  
  84. # -DStringStructVal   : A structure is passed by value for each  Fortran  
  85. #                           77 string,  and  the  structure is  of the form:  
  86. #                           struct {char *cp; F77_INTEGER len;},  
  87. # -DStringCrayStyle   : Special option for  Cray  machines,  which  uses  
  88. #                           Cray  fcd  (fortran  character  descriptor)  for  
  89. #                           interoperation.  
  90. #  
  91. F2CDEFS      = -DAdd__ -DF77_INTEGER= int  -DStringSunStyle  
  92. #  
  93. # ----------------------------------------------------------------------  
  94. # - HPL includes / libraries / specifics -------------------------------  
  95. # ----------------------------------------------------------------------  
  96. #  
  97. HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc)  
  98. HPL_LIBS     = $(HPLlib) $(LAlib) $(MPlib)  
  99. #  
  100. # - Compile time options -----------------------------------------------  
  101. #  
  102. # -DHPL_COPY_L           force the copy of the panel L before bcast;  
  103. # -DHPL_CALL_CBLAS       call the cblas interface;  
  104. # -DHPL_CALL_VSIPL       call the vsip  library;  
  105. # -DHPL_DETAILED_TIMING  enable detailed timers;  
  106. #  
  107. # By default HPL will:  
  108. #    *) not copy L before broadcast,  
  109. #    *) call the BLAS Fortran 77 interface,  
  110. #    *) not display detailed timing information.  
  111. #  
  112. HPL_OPTS     =  
  113. #  
  114. # ----------------------------------------------------------------------  
  115. #  
  116. HPL_DEFS     = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)  
  117. #  
  118. # ----------------------------------------------------------------------  
  119. # - Compilers / linkers - Optimization flags ---------------------------  
  120. # ----------------------------------------------------------------------  
  121. #  
  122. CC           = /usr/local/mpich2/bin/mpicc   //设置gcc编译器为mpicc  
  123. CCNOOPT      = $(HPL_DEFS)  
  124. CCFLAGS      = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops -W -Wall  
  125. #  
  126. # On some platforms,  it is necessary  to use the Fortran linker to find  
  127. # the Fortran internals used in the BLAS library.  
  128. #  
  129. LINKER       = /usr/local/mpich2/bin/mpif77  //设置fortran编译器为mpif77  
  130. LINKFLAGS    = $(CCFLAGS)  
  131. #  
  132. ARCHIVER     = ar  
  133. ARFLAGS      = r  
  134. RANLIB       = echo  
  135. #  
  136. # -----------------------------/usr/local/mpich2/bin/mpicc---------------------

 

 

修改好文件以后,对其进行编译:

  1. #make arch=Linux_xeon

 

如果编译正常,在hpl/bin/Linux_xeon目录下就会生成两个文件HPL.dat和xhpl。 HPL.dat文件是Linpack测试的优化配置文件,这个对测试的结果十分重要,xhpl为可执行程序。

如果是集群测试,就将linpack目录复制到机群中其余节点相同的目录下。

至此,安装就算完成了。现在可以进行简单的测试.

进入hpl/bin/Linux_xeon目录,先启动mpd服务,在终端运行以下命令启动测试:

  1. #mpiexec -np 4 ./xhpl

 

 

 

 

当多台机器时,还可以加入节点配置文件,如machinefile,格式如下:

host1 :1   #Run 1 process on host1,host可以是域名或者是ip地址

host2:2    #Run 2 process on host2

............

 

需要注意的是:因为通信是双向的,所以需要在所有host上的/etc/hosts上都配置上

 

可运行命令如下:

#mpiexec -n 4 -f machinefile ./xhpl

 

运行结果如图

 

在最后一列中看到Gflops:4.937e-03

实际应该是cat /proc/cpuinfo

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 44
model name      : Intel(R) Xeon(R) CPU           E5649  @ 2.53GHz
stepping        : 2
cpu MHz         : 2533.424
cache size      : 12288 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm arat
bogomips        : 5066.84
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 44
model name      : Intel(R) Xeon(R) CPU           E5649  @ 2.53GHz
stepping        : 2
cpu MHz         : 2533.424
cache size      : 12288 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm arat
bogomips        : 5066.40
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual

 

双核,每核每个circle内可跑2个process(硬件决定),所以CPU完全利用时应该是2.53GHz*4=10.12

所以跑出的cpu只利用了不到50%

 

格式编排不好,原文可参看:

http://www.orientsky.com.cn/_new/Read.asp?ID=1495

http://www.orientsky.com.cn/_new/Read.asp?ID=1496

  • 大小: 62.3 KB
分享到:
评论

相关推荐

    linpack测试计算性能工具环境搭建及测试文档

    总结,搭建LINPACK测试环境需要综合理解计算性能测试的基本原理,掌握相关工具的安装和使用,以及优化策略。通过这个过程,不仅可以评估计算机的计算性能,还可以深入了解并行计算和数学库的运用,这对于任何涉及高...

    linpack压力测试方法.docx

    Linpack 压力测试方法是计算机科学和工程学中常用的性能评估方法。Linpack 是一个高性能计算 bench-marking 工具,用于评估计算机系统的浮点运算能力。下面将详细介绍 Linpack 压力测试方法的步骤和原理。 Linpack ...

    Linpack的安装测试与优化PPT课件.pptx

    天潮集群 Linpack 测试验收标准是 Linpack 测试的重要部分,包括测试环境、测试步骤、测试结果等内容。 本课程的目标是使学生基本掌握 Linpack 测试的方法和步骤,解决测试过程中遇到的简单的问题,能做适当的优化...

    HPC高性能计算项目Linpack性能测试报告.docx

    HPC集群测试环境 - **测试集群配置**:本项目使用了60个刀片计算节点,每台计算节点拥有24个核心,CPU主频为2.5 GHz。测试集群分为两部分网络: - **管理网络**:IP地址范围为192.168.172.1-60。 - **计算网络**...

    Linpack测试分析1

    Linpack测试是评估高性能计算机系统浮点运算能力的一种广泛采用的基准测试。这个测试基于线性代数,特别是求解大型稠密线性方程组,以此来衡量系统的浮点运算速度。LINPACK软件包最初设计用于解决线性系统,现在已...

    cpu性能测试linpack

    本文将详细探讨如何使用Linpack在Linux环境下进行CPU性能测试。 Linpack是一款广泛应用于科学计算领域的软件,它通过解决线性代数方程组来评估计算机的浮点运算性能。Linpack由美国数学家Jack Dongarra开发,主要...

    Centos7.9 Linpack测试指导

    Linpack测试是评估计算机系统浮点运算性能的一种标准方法,它通过解决线性代数方程组来衡量处理器的计算能力。本指南将详细介绍如何在CentOS 7.9上进行Linpack测试,以了解你的系统在处理大规模科学计算任务时的性能...

    标准Linpack测试详细指南.pdf

    Linpack测试是一种评估计算机性能的基准测试工具,主要用于测量系统在浮点运算上的能力。它尤其在超级计算机领域受到广泛认可,通过Linpack基准测试得到的性能数据,用来编制全球最快500台超级计算机的排行榜。在...

    Linpack标准测试程序和分析1

    Linpack是一款用于评估高性能计算机系统浮点计算性能的基准测试工具。它基于高斯消元法,用于解决一元N次稠密线性代数方程组,以此来衡量计算机的浮点运算能力。测试结果以每秒浮点运算次数(flops)表示,被广泛...

    Linpack标准测试程序及其分析2

    总的来说,Linpack测试程序不仅是一种评估高性能计算系统浮点性能的标准,也是优化计算平台、理解系统瓶颈和提升计算效率的有效工具。通过对源码的深入分析,我们可以更好地理解和利用这一工具,为科学研究和工程...

    Linpack标准测试程序及其分析1

    其中,Linpack标准测试程序作为国际上广泛认可的基准测试,成为了评价和比较高性能计算机系统浮点性能的金标准。 Linpack测试程序的原理基于高斯消元法,这是一种能够求解大规模稠密线性代数方程组的算法。由于线性...

    1.Linpack标准测试程序及其分析1

    Linpack是一个广泛使用的基准测试程序,主要用来评估高性能计算机系统的浮点运算性能。该测试基于高斯消元法,用于求解大规模的稠密线性代数方程组。Linpack有三个变种:Linpack100、Linpack1000和HPL。Linpack100...

    Linpack测试与性能优化1

    影响Linpack性能的因素包括CPU主频、多核并行效率、内存带宽、BLAS库的实现效率、系统调度策略等。优化Linpack性能通常涉及调整并行度、优化内存访问模式、选择高效的BLAS库以及合理分配计算资源。 五、Linpack性能...

    报告一 Linpack标准测试程序及其分析1

    运行Linpack测试需要特定的硬件和软件环境,包括至少两台计算节点、高带宽低延迟的网络(如Infiniband)、Linux操作系统、编译器(支持C和Fortran77)、MPI并行环境以及高性能线性代数库(如BLAS或VSIPL)。...

    英特尔至强处理器LINPACK高级调优

    【英特尔至强处理器LINPACK高级调优】是针对高性能计算领域的一个重要话题,特别是对于优化超级计算机性能的HPL(High Performance Linpack)基准测试。HPL是一种衡量系统解决大型线性方程组能力的标准,它广泛应用...

    C 代码 是 LINPACK 基准测试程序的一个版本.rar

    `linpack_bench_test`可能包含了具体的测试用例和调用接口,用于验证和比较不同硬件环境下的性能。`linpack_bench`则可能包含了LINPACK核心算法的实现。 5. **编译与运行**:使用C语言编写的程序需要通过编译器(如...

    Linpack标准测试程序及分析1

    Linpack 测试程序是国际上最流行的用于测试高性能计算机系统浮点性能的benchmark。通过利用高性能计算机,用高斯消元法求解 N 元一次稠密线性代数方程组的测试,评价高性能计算机的浮点性能。 Linpack 测试包括三类...

    论文研究-一个实用高性能PC集群的Linpack测试与分析.pdf

    HPL是Linpack Benchmark的并行版本,是...基于一个8节点的PC集群,测试了该集群的Linpack性能。根据实验数据,得出了集群性能与集群节点数之间近似线性关系的结论,并给出了处理器维数、问题规模与系统性能之间的关系。

Global site tag (gtag.js) - Google Analytics