Linpack安装、配置与运行

Linpack是线性系统软件包(Linear system package) 的缩写,现在在国际上已经成为最流行的用于测试
高性能计算机系统浮点性能的benchmark。通过利用高性能计算机,用高斯消元法求解N元一次稠密线性代数
方程组的测试,评价高性能计算机的浮点性能。 衡量计算机性能的一个重要指标就是计算峰值,例如浮点计算峰值,它是指计算机每秒钟能完成的浮点计算最
大次数。包括理论浮点峰值和实测浮点峰值:理论浮点峰值是该计算机理论上能达到的每秒钟能完成浮点计算
最大次数,它主要是由CPU的主频决定的,理论浮点峰值=CPU主频×CPU每个时钟周期执行浮点运算的次数×系
统中CPU核心数目实测浮点峰值是指Linpack测试值,也就是说在这台机器上运行Linpack测试程序,通过各
种调优方法得到的最优的测试结果。实际上在实际程序运行过程中,几乎不可能达到实测浮点峰值,更不用说
达到理论浮点峰值了。这两个值只是作为衡量机器性能的一个指标,用来表明机器处理能力的一个标尺和潜能
的度量。文档作者: Carl 下载必要的软件包: MPI,GotoBLAS库,HPL源码 http://www.netlib.org/mpi/index.html https://www.tacc.utexas.edu/research-development/tacc-software/gotoblas2 http://www.netlib.org/benchmark/hpl/
1、 mpich安装
1.1 解压mpich包
tar zxvf mpich-3.2.tar.gz 
1.2 创建安装目录
mkdir –p /install/mpich
1.3 配置mpich的安装参数
进入解压后的mpich目录,执行./configure –prefix=/install/mpich
1.4 在mpich目录下,执行make,编译mpich
1.5 在mpich目录下,执行make install
1.6 将mpich的运行环境加入到系统环境变量中
 LD_LIBRARY_PATH=/install/mpich/lib:$LD_LIBRARY_PATH
 export LD_LIBRARY_PATH
2、GotoBLAS安装
2.1 解压GotoBLAS包之后,在解压后的目录下执行./ quickbuild.64bit进行快速安装,如果安装正常,
在本目录下就会生成libgoto2.a和libgoto2.so两个文件若出现如下: ../kernel/x86_64/gemm_ncopy_4.S:192: Error: undefined symbol RPREFETCHSIZE' in operation
../kernel/x86_64/gemm_ncopy_4.S:193: Error: undefined symbol
RPREFETCHSIZE' in operation
../kernel/x86_64/gemm_ncopy_4.S:194: Error: undefined symbol RPREFETCHSIZE' in operation
../kernel/x86_64/gemm_ncopy_4.S:195: Error: undefined symbol
RPREFETCHSIZE' in operation
则执行: gmake clean make BINARY=64 TARGET=NEHALEM
2.2 编译正常的话,会在目录下生成libgoto2.a 和libgoto2.so文件
3、HPL程序的编译
3.1 解压HPL程序包之后,将看到如下目录结构,从setup目录中选择一个和自己实际的测试平台最相似的配
置文件,将其复制到hpl根目录下,可以重新命名以示区别。
3.2 Make配置文件中有大量的注释信息,可以借助grep之类的工具将真正有用的参数筛选出来
 [root@hplnode01 hpl]# cat Make.carl |grep -v "#"
 SHELL        = /bin/sh
 CD           = cd
 CP           = cp
 LN_S         = ln -s
 MKDIR        = mkdir
 RM           = /bin/rm -f
 TOUCH        = touch
 ARCH         = Linux_PII_FBLAS               <--系统架构名称
 TOPdir       = $(HOME)/hpl                   <--hpl程序包解压后所在的路径
 INCdir       = $(TOPdir)/include
 BINdir       = $(TOPdir)/bin/$(ARCH)
 LIBdir       = $(TOPdir)/lib/$(ARCH)
 HPLlib       = $(LIBdir)/libhpl.a
 MPdir        = /usr/local/mpi                  <--mpi环境所在的路径
 MPinc        = -I$(MPdir)/include
 MPlib        = $(MPdir)/lib/libmpich.a
 LAdir        = $(HOME)/netlib/ARCHIVES/Linux_PII           <--GotoBlas库所在的路径
 LAinc        =
 LAlib        = $(LAdir)/libf77blas.a $(LAdir)/libatlas.a   <--Gotoblas库文件所在的路径
 F2CDEFS      = -DAdd__ -DF77_INTEGER=int -DStringSunStyle
 HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc)
 HPL_LIBS     = $(HPLlib) $(LAlib) $(MPlib)
 HPL_OPTS     =
 HPL_DEFS     = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
 CC           = /usr/bin/gcc
 CCNOOPT      = $(HPL_DEFS)
 CCFLAGS      = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops -W -Wall
 LINKER       = /usr/bin/g77
 LINKFLAGS    = $(CCFLAGS)
 ARCHIVER     = ar
 ARFLAGS      = r
 RANLIB       = echo
 [root@hplnode01 hpl]#

3.3 以下是我在实验环境中使用的参数
3.4 设置好hpl程序的编译参数之后,通过命令make arch=xxx来指定编译配置文件,开始进行编译,编译
完成后,将在hpl目录的bin/xxx/下生成HPL.dat和xhpl两个文件,其中HPL.dat是hpl测试时参数的配置
文件,xhpl是hpl测试时被执行的mpi程序。
4、HPL测试的执行
4.1 节点执行hpl测试前需要先开启mpd demo,首次启动mpd demo时,请根据提示创建mpd配置文件。
Mpdboot –n 启动的节点数量 –f 可用的节点列表, mpdtrace –l 可以查看demo运行状态 
4.2 以下是在单台服务器上以4个进程并行执行xhpl程序的例子
4.3 以下是在多台服务器上以指定的进程数并行执行xhpl程序的例子
4.4 mpirun -np 8 –machinefile 主机列表文件 ./xhpl
4.5 以下是一个比较方便直观的hpl测试效率计算器
 http://hpl-calculator.sourceforge.net

发表评论