zoukankan      html  css  js  c++  java
  • HPL-用于分布式内存计算机的高性能Linpack基准的便携式实现

    hpl包下载链接:http://www.netlib.org/benchmark/hpl/

    安装HPL之前需要配置好:

    1.GCC/Fortran77 编译器
    2.BLAS/CBLAS/ATLAS 库
    3.MPICH 并行环境

    我的完整目录结构,在/root/workable/HPL完成测试

     1.GCC/Fortran77 编译器

    检查环境,会输出版本信息

    gfortran -v 
    gcc -v

    如果没有,则安装

    sudo yum install gcc
    sudo yum install gcc-gfortran

    2.安装向量和矩阵运算库函数

    BLAS/CBLAS/ATLAS 库

    安装步骤
    下载 blas-3.8.0.tgz:

    wget http://www.netlib.org/blas/blas-3.8.0.tgz

    解压包:

    tar -xzf blas-3.8.0.tgz

    切换目录:

    cd BLAS-3.8.0

    编译生成blas_LINUX.a:

    make

    链接.o文件生成libblas.a文件:

    ar rv libblas.a *.o

    切换目录:对于我,回到HPL目录下

    cd ..

    下载 cblas.tgz:

    wget http://www.netlib.org/blas/blast-forum/cblas.tgz

    解压包:

    tar -xzf cblas.tgz

    切换目录:

    cd CBLAS

    将第4步产生的.a文件拷贝到当前目录:

    cp ../BLAS-3.8.0/blas_LINUX.a ./

    修改Makefile.in文件中的BLLIB:

    vim Makefile.in

    在Makefile.in里修改这两个
    BLLIB = ../blas_LINUX.a CBLIB = ../lib/cblas_$(PLAT).a

    编译:

    make

    测试运行:

    ./testing/xzcblat1

    3.MPICH 并行环境

    下载 mpich-3.2.1.tar.gz:

    wget http://www.mpich.org/static/downloads/3.2.1/mpich-3.2.1.tar.gz

    解压安装包:

    tar xzf mpich-3.2.1.tar.gz

    切换到主目录:

    cd mpich-3.2.1

    设置安装路径:路径为自己解压mpich-3.2.1.tar.gz时的路径+/mpich-install

    ./configure --disable-cxx --prefix=/root/worktable/HPL/mpich-install 2>&1 | tee c.txt

    编译:

    make 2>&1 | tee m.txt

    安装:

    sudo make install 2>&1 | tee mi.txt

    临时配置环境变量:路径为自己解压mpich-3.2.1.tar.gz时的路径+/mpich-install

    export PATH=/root/worktable/HPL/mpich-install/bin:$PATH

    (Ref: linux查看和修改PATH环境变量的方法

    查看前面工作是否成功:

    which mpicc && which mpiexec

    创建目录:

    mkdir machinefile

    测试运行:

    mpiexec -f machinefile -n 3 hostname && mpiexec -n 5 -f machinefile ./examples/cpi

    4.Linpack之HPL测试 (HPL Benchmark)

    到达压缩包要下载的目录

    复制文件:

    sudo cp CBLAS/lib/* /usr/local/lib

    复制文件:

    sudo cp BLAS-3.8.0/blas_LINUX.a /usr/local/lib

    下载 hpl-2.3.tar.gz:

    wget http://www.netlib.org/benchmark/hpl/hpl-2.3.tar.gz

    解压包:

    tar -xzf hpl-2.3.tar.gz

    切换目录:

    cd hpl-2.3

    复制文件:

    cp setup/Make.Linux_PII_CBLAS ./

    打开Make.top文件:

    vim Make.top

    修改变量值:

    arch = Linux_PII_CBLAS

    关闭Make.top文件:

    :wq

    打开Makefile文件:

    vim Makefile

    修改变量值:

    arch = Linux_PII_CBLAS

    关闭Makefile文件:

    :wq

    打开Make.Linux_PII_CBLAS:

    vim Make.Linux_PII_CBLAS

    修改Make.Linux_PII_CBLAS文件中的变量:

    ARCH         = Linux_PII_CBLAS
    
    TOPdir       = /root/worktable/HPL/hpl-2.3
    
    MPdir        = /root/worktable/HPL/mpich-install
    MPlib        = $(MPdir)/lib/libmpi.so /usr/lib64/libpthread.so /usr/lib64/libc.so
    
    LAdir         = /usr/local/lib
    LAinc        =                
    LAlib         = $(LAdir)/cblas_LINUX.a $(LAdir)/blas_LINUX.a
    
    CC            = /root/worktable/HPL/mpich-install/bin/mpicc
    
    LINKER     = /root/worktable/HPL/mpich-install/bin/mpif77

    关闭Make.Linux_PII_CBLAS文件,只读文件,加上!强制保存写并退出。

    :wq!

    编译:

    make arch=Linux_PII_CBLAS

    如果报错,可能原因有,Make.Linux_PII_CBLAS中的路径没有改对,路径要与自己实际的安装路径相符,可以一一对照,看看路径下对应的文件是否存在。也可能原因,Makefile文件格式严苛,不要随意用空格,路径前后有空格虽然看不出来,但是Makefile文件能认出来。路径特别是mpich-install的路径不要弄错,环境变量再检查检查。若还不行,按照步骤删掉,都重来一遍。

    若无报错,运行测试:

    cd bin/Linux_PII_CBLAS
    mpirun -np 4 ./xhpl > HPL-Benchmark.txt

    生成HPL-Benchmark.txt

    ………………………… 总共有很多测试,结果文件还挺长的,中间省略

     参考链接:https://www.cnblogs.com/zhyantao/p/10614238.html 感谢博主!

  • 相关阅读:
    sql面试题
    C#基础(1)
    Java中的冒泡排序(减少比较次数)
    Java中面向对象的分拣存储
    Java中分拣存储的demo
    XML序列化
    C#读取csv文件使用字符串拼接成XML
    Java中HashMap(泛型嵌套)的遍历
    Java 中List 集合索引遍历与迭代器遍历
    java 中的try catch在文件相关操作的使用
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/14352957.html
Copyright © 2011-2022 走看看