前置工作:安装OpenBLAS; 安装Mpich (可参考首页博客)

  • 官网下载压缩包到/opt目录

    cd /opt && wget https://www.netlib.org/benchmark/hpl/hpl-2.3.tar.gz

  • 解压到 /opt 目录

    tar -xzf hpl-2.3.tar.gz
  • 复制Make.Linux_PII_CBLAS并重命名

    cd /opt/hpl-2.3 && cp setup/Make.Linux_PII_CBLAS Make.Linux
  • 编辑Make.Linux

    vim Make.Linux

    修改如下内容:

    ARCH = Linux
    
    TOPdir = /opt/hpl-2.3  # hpl安装目录
    
    MPdir = /opt/mpich     # mpich安装目录
    MPlib = $(MPdir)/lib/libmpi.a # mpi链接库 LAdir = /opt/OpenBLAS # openblas安装目录
    LAlib = $(LAdir)/lib/libopenblas.a # openblas链接库 CC = /opt/mpich/bin/mpicc # compiler
    CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops -pthread LINKER = /opt/mpich/bin/mpif77 # linker

    以上路径根据个人安装时的目录修改

  • 构建hpl

    make arch=Linux

    若build成功,则会在/opt/hpl-2.3/bin/Linux目录下生成HPL.dat和xhpl文件

  • 测试hpl

    cd /opt/hpl-2.3/bin/Linux
    1. 单节点测试

      mpiexec -np 4 ./xhpl
    2. 多节点测试

      编辑节点文件,输入节点主机名或IP地址

      vim nodes

      eg:

      修改HPL.dat

      HPLinpack benchmark input file
      Innovative Computing Laboratory, University of Tennessee
      HPL.out output file name (if any)
      6 device out (6=stdout,7=stderr,file)
      1 # of problems sizes (N)
      1200 Ns
      1 # of NBs
      232 NBs
      0 PMAP process mapping (0=Row-,1=Column-major)
      1 # of process grids (P x Q)
      1 Ps
      4 Qs
      16.0 threshold
      1 # of panel fact
      0 PFACTs (0=left, 1=Crout, 2=Right)
      1 # of recursive stopping criterium
      2 NBMINs (>= 1)
      1 # of panels in recursion
      2 NDIVs
      1 # of recursive panel fact.
      0 RFACTs (0=left, 1=Crout, 2=Right)
      1 # of broadcast
      0 BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
      1 # of lookahead depth
      1 DEPTHs (>=0)
      2 SWAP (0=bin-exch,1=long,2=mix)
      64 swapping threshold
      0 L1 in (0=transposed,1=no-transposed) form
      0 U in (0=transposed,1=no-transposed) form
      1 Equilibration (0=no,1=yes)
      8 memory alignment in double (> 0)

      运行hpl

      mpiexec -np 4 -machinefile ./nodes ./xhpl

    3. HPL.dat配置项解释

      HPLinpack benchmark input file                            # 文件头,说明
      Innovative Computing Laboratory, University of Tennessee
      HPL.out output file name (if any) # 如果使用文件保留输出结果,设定文件名
      6 device out (6=stdout,7=stderr,file) # 输出方式选择(stdout,stderr或文件)
      2 # of problems sizes (N) # 指出要计算的矩阵规格有几种
      1960 2048 Ns # 每种规格分别的数值
      2 # of NBs # 指出使用几种不同的分块大小
      60 80 NBs # 分别指出每种大小的具体值
      2 # of process grids (P x Q-l # 指出用几种进程组合方式
      2 4 Ps # 每对PQ具体的值
      2 1 Qs
      16.0 threshold # 余数的阈值
      1 # of panel fact # 用几种分解方法
      1 PFACTs (0=left, 1=Crout, 2=Right) # 具体用哪种,0 left,1 crout,2 right
      1 # of recursive stopping criterium # 几种停止递归的判断标准
      4 NBMINs (>= 1) # 具体的标准数值(须不小于1)
      1 # of panels in recursion # 递归中用几种分割法
      2 NDIVs # 这里用一种NDIV值为2,即每次递归分成两块
      1 # of recursive panel fact. # 用几种递归分解方法
      2 RFACTs (0=left, 1=Crout, 2=Right) # 这里每种都用到(左,右,crout分解)
      1 # of broadcast # 用几种广播方法
      3 BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM) # 指定具体哪种(有1-ring,1-ring Modified,2-ring,2ring Modified,Long以及long-Modified)
      1 # of lookahead depth # 用几种向前看的步数
      1 DEPTHs (>=0) # 具体步数值(须大于等于0)
      2 SWAP (0=bin-exch,1=long,2=mix) # 哪种交换算法(bin-exchange,long或者二者混合)
      64 swapping threshold # 采用混合的交换算法时使用的阈值
      0 L1 in (0=transposed,1=no-transposed) form # L1是否用转置形式
      0 U in (0=transposed,1=no-transposed) form # U是否用转置形式表示
      1 Equilibration (0=no,1=yes) # 是否采用平衡状态
      8 memory alignment in double (> 0) # 指出程序运行时内存分配中的采用的对齐方式

CentOS7 单节点和多节点 HPL测试的更多相关文章

  1. Centos7 单节点安装 FastDFS + FastDHT服务

    Centos7 单节点安装 FastDFS + FastDHT服务 1.安装gcc(编译时需要) FastDFS是C语言开发,安装FastDFS需要先将官网下载的源码进行编译,编译依赖gcc环境,如果 ...

  2. HTMLDOM中三种元素节点、属性节点、文本节点的测试案例

    HTML dom中常用的三种节点分别是元素节点.属性节点.文本节点. 具体指的内容可参考下图: 以下为测试用例: <!DOCTYPE html> <html> <head ...

  3. kubernetes 单节点和多节点环境搭建

    kubernetes单节点环境搭建: 1.在VMWare Workstation中建立一个centos 7虚拟机.虚拟机的配置尽量调大一些 2.操作系统安装完成后,关闭centos 自带的防火墙服务 ...

  4. 实验:Oracle单节点RAC添加节点

    环境:RHEL 6.5 + Oracle 11.2.0.4 单节点RAC 需求:单节点RAC添加新节点 1.添加节点前的准备工作 2.正式添加节点 3.其他配置工作 1.添加节点前的准备工作 参考Or ...

  5. OpenStack入门篇(九)之nova服务(控制节点)的部署与测试

    1.Nova介绍 Nova是openstack最早的两块模块之一,另一个是对象存储swift.在openstack体系中一个叫做计算节点,一个叫做控制节点.这个主要和nova相关,我们把安装为计算节点 ...

  6. Oracle之配置节点间相互信任机制测试

    更改一下,之前的都不对,现在来一版简单有效的ssh互信配置 例如我的是在配置rac,在grid用户下配置互信:建立好相应的文件 mkdir .ssh chmod -R 700 .ssh/ 使用ssh- ...

  7. eureka server 单节点与多节点部署演示

    环境搭建 目录结构(ad-eureka为子模块) --ad-spring-cloud --ad-eureka --pom.xml --pom.xml 主pom.xml <?xml version ...

  8. 单链表-Python实现-jupyter->markdown 格式测试

    单链表引入 顺序表 理解Python变量的本质: 变量存储的不是值,是值的地址 理解Python的 "="表示的是指向关系 案例: 交换a,b的值, a=10, b=20 a, b ...

  9. 删除节点与插入节点 & innerHTML

    1.测试removeChild()方法: 删除节点dom9.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" &q ...

  10. cordon节点,drain驱逐节点,delete 节点

    目录 一.系统环境 二.前言 三.cordon节点 3.1 cordon节点概览 3.2 cordon节点 3.3 uncordon节点 四.drain节点 4.1 drain节点概览 4.2 dra ...

随机推荐

  1. Architecture Review Board

    Architecture Review Board What's an Architecture Review? Architecture design is not a one-time final ...

  2. [CSS]《CSS揭秘》第四章——视觉效果

    投影 单侧投影 box-shadow:0px 10px 10px -5px black; 邻边投影 box-shadow:10px 10px 10px 2px black; 双侧投影 box-shad ...

  3. jquery+html5实现单张图片上传预览

    js: if (window.File && window.FileReader && window.FileList && window.Blob){ ...

  4. iview table表中使用render函数props传值出现问题

    使用iview中的table表格时避免不了使用render函数渲染自定义内容,或者渲染组件.但是在正常使用时出现了props传值无法识别, 按照官网介绍使用props如下: render: (h, p ...

  5. 深入解析丨母婴App如何迅速收割2W新用户?

    在讲案例前,我们需要先说一下精细化分析. 我们常说的精细化分析,就是一个持续"解构"的过程,通过像漏斗.留存.细分等高级分析功能,将"整体"按照事件属性解构成& ...

  6. Javascript Symbol 隐匿的未来之星

    ES6中基础类型增加到了7种,比上一个版本多了一个Symbol,貌似出现了很长时间,但却因没有使用场景,一直当作一个概念层来理解它,我想,用它的最好的方式,还是要主动的去深入了解它吧,所以我从基础部分 ...

  7. ES6-11学习笔记--数组的扩展

    类数组 / 伪数组 Array.from() Array.of() copyWithin() fill() includes()   类数组.伪数组例子: let divs = document.ge ...

  8. hive启动出错

    Hive启动报错:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument - 狗子的进阶史 - ...

  9. 假期任务一:安装好JAVA开发环境并且在Eclipse上面成功运行HelloWorld程序

    (本周主要做了java环境的安装,安装完jdk后又安装了eclipse,平均每天两小时Java吧,这周敲代码的时间比较少,大多是在b站看java入门视频和菜鸟教程的基础语法,也就打开eclipse验证 ...

  10. javascript回调地狱真的只能Promise来解决吗?js回调地狱,Promise。

    javascript的灵活在于函数可以当作函数的参数来传递,以及它的异步回调思想.但是这就带了一个很严重的问题,那就是回调次数过多,会影响代码结构,多层嵌套影响代码的可阅读性,也不便于书写. 举个例子 ...