linpack环境搭建:Openmpi+Openblas+HPL安装教程

4 篇文章 0 订阅
1 篇文章 0 订阅

​ 本教程在ubuntu18.04版本上执行成功,在ubuntu16.04上可能会遇到一些奇奇怪怪的错误

​ 作者在ZorinOS(基于ubuntu18.04的ubuntu发行版)和deepin20.1(基于debian)两个环境上安装成功,理论上比较新的ubuntu应该都可以

  1. 安装gcc编译器

    先执行源更新,以保证后面的软件可以被搜索

    sudo apt update
    

    安装gcc:

    sudo apt install gcc
    
  2. 安装g++编译器

    sudo apt install g++
    
  3. 安装gfortran编译器

    sudo apt install gfortran
    
  4. 安装make工具

    sudo apt install make
    
  5. 安装openmpi工具

    sudo apt install mpi-*
    
  6. 安装openblas工具

    sudo apt install libopenblas-*
    
  7. 查看mpi是否安装成功

    which mpicc
    
    which mpirun
    
    which mpif77
    

    若返回路径说明安装成功(作者我的是/usr/bin/mpicc,/usr/bin/mpirun,/usr/bin/mpif77,这个应该都一样),当三个都安装成功,才能开始下一步

  8. 下载hpl-2.3

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

  9. 解压到你用户的主目录下:~/hpl-2.3(或者/home/你的用户名/hpl-2.3)

    例如作者的用户名为yhc,那么就解压在/home/yhc/hpl-2.3

  10. 将~/hpl-2.3/setup/Make.Linux_PII_CBLAS 复制到~/hpl-2.3/ 下(复制到上一层)

  11. 将~/hpl-2.3/Make.Linux_PII_CBLAS重命名为Make.test

  12. 修改此文件的如下字段:

    # ARCH内容要与刚刚重命名Make后的字段一致
    ARCH = test
    # TOPdir填写你hpl的解压路径
    TOPdir = $(HOME)/hpl-2.3
    # MPdir填写openmpi的库文件夹,ZorinOS是在/usr/lib/x86_64-linux-gnu/openmpi,有的系统会在/usr/lib/openmpi
    # 找不到的话可以用全盘搜索
    MPdir = /usr/lib/x86_64-linux-gnu/openmpi
    # MPlib填写libmpi链接库的路径,它在openmpi库文件夹的lib下(可以作为搜索openmpi的依据)
    MPlib = $(MPdir)/lib/libmpi.so
    # LAdir填写openblas的库文件路径
    LAdir = /usr/lib/x86_64-linux-gnu/openblas
    # LAlib填写libblas静态库路径,它在openmpi库文件夹下(可以作为搜索openblas的依据)
    LAlib = $(LAdir)/libblas.a
    # CC填写C编译器路径(通过which mpicc查询路径),这里我们不用gcc,而是使用mpicc编译器
    CC = /usr/bin/mpicc
    # CCFLAGS需要加一个-lpthread,表明编译时添加头文件 pthread.h(和线程有关)
    CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops -lpthread
    # LINKER填写连接器路径(which mpif77查询路径),这里使用mpif77连接器
    LINKER = /usr/bin/mpif77
    
  13. 在~/hpl-2.3/下执行:

    注意:arch=上面你重命名Make后的字段

    make arch=test
    
  14. 等到执行完毕,到~/hpl-2.3/bin/test下可以看到两个文件HPL.dat和xhpl

  15. 执行下面的指令,测试是否安装成功

    mpirun -np 4 ./xhpl > 1.txt
    

    打开1.txt,是一份测试报告,里面含有一些GFLOPS之类的

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
MPI是一种用于并行计算的通信协议,它允许不同的进程在分布式计算环境中相互通信和协作。在使用MPI执行并行计算时,调优MPI性能参数可以显著提高系统的性能。下面介绍一些调优MPI性能参数的方法。 1. 调整通信域大小 MPI性能的一个重要因素是通信域的大小。通信域指的是进程之间交换消息的逻辑区域。通信域越大,通信的开销就越大。为了提高MPI性能,可以尝试调整通信域的大小,以最小化通信开销。可以使用MPI_Comm_split函数将通信域划分为更小的子域,以减少通信开销。 2. 调整进程数 MPI性能还受到进程数的影响。如果进程数太少,可能会导致通信开销过大,从而影响性能。相反,如果进程数太多,可能会导致过多的通信和同步开销。为了获得最佳性能,需要找到最佳的进程数。可以使用MPI_Comm_size函数确定当前通信域中的进程数,并使用MPI_Comm_split函数将进程划分为更小的组。 3. 选择适当的通信模式 MPI支持多种通信模式,包括点对点通信、广播、归约和收集。每种通信模式都有其优点和缺点,因此选择适当的通信模式对于提高MPI性能至关重要。例如,在点对点通信中,发送方需要等待接收方确认消息已经接收。这种通信模式可能会导致延迟。相反,在广播通信中,所有进程都可以同时接收消息,因此可以提高性能。 4. 调整缓冲区大小 MPI通信期间使用缓冲区,以存储要发送或接收的数据。缓冲区的大小对MPI性能有重要影响。如果缓冲区太小,可能会导致进程必须等待缓冲区可用,从而导致延迟。相反,如果缓冲区太大,可能会导致内存消耗过多。为了获得最佳性能,需要根据应用程序的需求来调整缓冲区大小。 5. 调整MPI实现 MPI实现是指MPI库的实现方式。不同的MPI实现可能会导致不同的性能。为了获得最佳性能,可以尝试使用不同的MPI实现,并比较它们的性能。常见的MPI实现包括OpenMPI、MPICH和Intel MPI。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值