前置工作:安装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. pandas数据读取

    02. Pandas读取数据 本代码演示: pandas读取纯文本文件 读取csv文件 读取txt文件 pandas读取xlsx格式excel文件 pandas读取mysql数据表 1.读取纯文本文件 ...

  2. 线性二次型控制器(LQR)——轨迹跟踪器

    1 概念 2 线性时变系统的跟踪问题 3 线性定常系统的跟踪问题 公式18--22为求解的关键     根据20.21分别求出P.g的值则通过18可求得期望的输出u 4 实例分析 5 仿真实验 先将上 ...

  3. ECMAScript中有两种属性:数据属性和访问器属性。

    ECMA-262定义这些特性是为了实现JavaScript引擎用的,因此在JavaScript中不能直接访问它们.为了表示特性是内部值,该规范把它们放在了两对儿方括号中,例如 [[Enumerable ...

  4. ecahrts实现动态刷新(隔几秒重新显示)

    代码: <script> var chartDom = document.getElementById('main3'); var myChart = echarts.init(chart ...

  5. js原生的Ajax

    js原生的Ajax其实就是围绕浏览器内内置的Ajax引擎对象进行学习的,要使用js原 生的Ajax完成异步操作,有如下几个步骤: 1)创建Ajax引擎对象 2)为Ajax引擎对象绑定监听(监听服务器已 ...

  6. Vue3 + Echarts 5 绘制带有立体感流线中国地图,建议收藏

    本文绘制的地图效果图如下: 一.Echarts 使用五部曲 1.下载并引入 echarts Echarts 已更新到了 5.0 版本,安装完记得检查下自己的版本是否是 5.0 . npm instal ...

  7. Struts2-EL表达式为什么能获取值栈数据

    1.EL表达式能获取域对象值 2.向域对象里面放值使用setAttribute方法,获取使用getAttribute方法 3.底层增强request对象里面的方法getAttribute方法 (1)首 ...

  8. 微信小程序--设置和获取剪切板内容

    设置 wx.setClipboardData  // 复制功能 获取 wx.getClipboardData // 粘贴功能     let _this = this     wx.setClipbo ...

  9. react实战系列 —— 起步(mockjs、第一个模块、docusaurus)

    其他章节请看: react实战 系列 起步 本篇我们首先引入 mockjs ,然后进入 spug 系统,接着模仿"任务计划"模块实现一个类似的一级导航页面("My任务计划 ...

  10. 深入了解 TiDB SQL 优化器

    分享嘉宾:张建 PingCAP TiDB优化器与执行引擎技术负责人 编辑整理:Druid中国用户组第6次大数据MeetUp 出品平台:DataFunTalk 导读: 本次报告张老师主要从原理上带大家深 ...