安装HPL软件

# 安装mpich

wget http://www.mpich.org/static/downloads/3.3/mpich-3.3.tar.gz -P ~/software/

tar zxf ~/software/mpich-3.3.tar.gz

cd mpich-3.3

./configure --prefix=/opt/sysoft/mpich-3.3 && make -j 4 && make install

cd .. && rm -rf mpich-3.3

echo 'export PKG_CONFIG_PATH=/opt/sysoft/mpich-3.3/lib/pkgconfig:$PKG_CONFIG_PATH' > ~/.bashrc.mpich

echo 'export LD_LIBRARY_PATH=/opt/sysoft/mpich-3.3/lib:$LD_LIBRARY_PATH' >> ~/.bashrc.mpich

echo 'export C_INCLUDE_PATH=/opt/sysoft/mpich-3.3/include:$C_INCLUDE_PATH' >> ~/.bashrc.mpich

echo 'export PATH=/opt/sysoft/mpich-3.3/bin/:$PATH' >> ~/.bashrc.mpich

source ~/.bashrc.mpich

# 安装openblas

sudo yum -y install openblas openblas-devel

# 若是CentOS8系统

sudo dnf --enablerepo=PowerTools install gcc-fortran openblas openblas-devel

# 安装hpl

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

tar zxf hpl-2.3.tar.gz

cd hpl-2.3/

source ~/.bashrc.mpich

./configure --prefix=/opt/sysoft/hpl-2.3

make -j 8

make install

cd ../ && rm -rf hpl-2.3

在当前目录下生成HPL的配置文件HPL.dat,该配置文件适合72核心的单节点服务器。

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)

82944 Ns

1 # of NBs

144 NBs

0 PMAP process mapping (0=Row-,1=Column-major)

1 # of process grids (P x Q)

8 Ps

9 Qs

16.0 threshold

2 # of panel fact

2 1 0 PFACTs (0=left, 1=Crout, 2=Right)

1 # of recursive stopping criterium

2 4 NBMINs (>= 1)

1 # of panels in recursion

2 NDIVs

1 # of recursive panel fact.

1 0 2 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

0 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)

配置文件中的重要参数如下:

1 # of problems sizes (N)

设置程序运行时使用的 N 值的个数。

82944 Ns

设置程序运行时使用的 N 值。上一个参数的值有多大,此处则输入对应个数的 N 值。N 值为Linpack进行浮点运算的问题规模。求解问题规模为N时,Linpack浮点运算次数 = 2 / 3 * N^3 - 2 * N^2。再测得系统计算所消耗的时间T,即可算出浮点运算每秒次数FLOPS值。需注意内存和计算时间消耗随该值增大呈指数级增加,内存消耗=N*N*8。比如该参数值为20000时消耗3.2GB内存,设置为30000时消耗约7.2GB内存。在HPL软件进行计算时,该值设置越大,有效计算所占的比例也越大,其结果FLOPS值越大。此外,该值推荐设置为 P * Q * NB 的整数倍。

1 # of NBs

设置程序运行时使用的 NB 值的个数。

144 NBs

设置数据分块数量,有利于并行化计算。上一个参数的值有多大,此处则输入对应个数的 NB 值。推荐设置为 P * Q 的整数倍。要计算的问题规模比较大,将这些计算均匀分配给各个CPU核心。

1 # of process grids (P x Q)

设置程序运行时使用的 P x Q 的个数。

8 Ps

9 Qs

设置并行化和多线程的CPU使用个数。尽可能让P和Q相等,并使两者的乘积为服务器的CPU总核心数,使P <= Q,也最好使P值为2的n次方。上一个参数设置有多大,则此处输入对应个数的P和Q值。

2 # of panel fact

2 1 0 PFACTs (0=left, 1=Crout, 2=Right)

设置panel fact的值个数。上面设置了使用2种panel fact参数,下一个参数虽然有3个值,于是HPL运行时选取使用前两个值。

后面还有几个这样的参数设置。但是对结果影响不大。只有前面的N, NB, P 和 Q 对结果影响较大。特别是 N 值影响最大。

运行HPL程序进行FLOPS计算

/opt/sysoft/mpich-3.3/bin/mpirun -np 72 /opt/sysoft/hpl-2.3/bin/xhpl

程序运行需要当前目录下存在HPL.date配置文件。

程序运行的注意事项:

(1)mpirun的-np参数值是服务器的CPU总核心数。对应着参数文件种 P * Q 的值。要求 -np 参数的值 >= P * Q,否则程序报错。

(2)HPL若使用超线程后总CPU线程数来进行计算,其FLOPS值更低,比用总核心数低约20%。

(3)若可以的话,设置不同的参数来让HPL程序运行多次,取其最高值(峰值)作为服务的FLOPS计算性能。

(4)配置以 # 开始的参数用于设置多个值,程序有7个参数可以设置不同的多个值,于是排列组合后可以运行很多次,选择最大值作为FLOPS计算峰值。

(5)当设置多种参数值,会很消耗计算时间,且其结果都相差不大,则可以考虑节约时间,不用设置太多的参数值。

(6)程序第一个运行种CPU刚唤醒,导致其有效计算所占的比例要小些,其结果会差些,特别是N值设置不够大时更明显,推荐至少有2次运行。

(7)设置稍大的 N 值,让每次Linpack程序运行时间长度超过200秒,则获得的结果更准确些。若运行时间太长,则感觉很费时间。

程序结果如下。按上面的配置文件,设置了2个不同的参数运行。第一次运行的结果一般较低,直接看第二次的结果作为服务器的计算性能:1297 Gflops。

================================================================================

T/V N NB P Q Time Gflops

--------------------------------------------------------------------------------

WR00C2R2 82944 144 8 9 311.44 1.2215e+03

HPL_pdgesv() start time Sat Apr 10 06:32:55 2021

HPL_pdgesv() end time Sat Apr 10 06:38:06 2021

--------------------------------------------------------------------------------

||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)= 1.11497782e-03 ...... PASSED

================================================================================

T/V N NB P Q Time Gflops

--------------------------------------------------------------------------------

WR00C2C2 82944 144 8 9 293.31 1.2970e+03

HPL_pdgesv() start time Sat Apr 10 06:38:15 2021

HPL_pdgesv() end time Sat Apr 10 06:43:09 2021

--------------------------------------------------------------------------------

||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)= 1.07067674e-03 ...... PASSED

================================================================================

使用HPL对一些服务器的FLOPS测试结果如下:

服务器型号 CPU型号数量 整体FLOPS 系统

惠普DL580G9 E7-8890 V3 * 4 1297.0 GFlops CentOS7

华为RH5885H V3 E7-4890 V2 * 4 904.68 GFlops CentOS7

华为RH5885H V3 E7-4890 V2 * 4 614.23 GFlops CentOS8

惠普DL980G7 E7-4870 * 4 339.53 GFlops CentOS8

linux提示密码没有凑效,陈连福的生信博客 | 第16期培训班将于2021.01.23-2021.02.01期间在武汉市举办,提前报名有有优惠!...相关推荐

  1. gff3转mysql_五月 | 2013 | 陈连福的生信博客

    1. GBrowse的安装 GBrowse安装说明文档:http://gmod.org/wiki/GBrowse_2.0_Install_HOWTO GBrowse的安装很少有能顺利安装成功的.需要不 ...

  2. linux下查看cpu物理个数和逻辑个数 - chw1989的专栏 - 博客频道 - CSDN.NET

    linux下查看cpu物理个数和逻辑个数 - chw1989的专栏 - 博客频道 - CSDN.NET [plain] view plaincopyprint? hadoop@chw-desktop3 ...

  3. TS:linux根分区满了如何处理,查找大文件方法(成功测试-博客输出)-2022.2.11

    TS:linux根分区满了如何处理,查找大文件方法(成功测试-博客输出)-2022.2.11 目录 文章目录 TS:linux根分区满了如何处理,查找大文件方法(成功测试-博客输出)-2022.2.1 ...

  4. Linux C/C++ 内存泄漏检测工具:Valgrind - 张宴的博客 - Web系统架构与底层研发

    Linux C/C++ 内存泄漏检测工具:Valgrind - 张宴的博客 - Web系统架构与底层研发 Linux C/C++ 内存泄漏检测工具:Valgrind - 张宴的博客 - Web系统架构 ...

  5. pmta linux视频,PowerMTA (PMTA) 的安装和设置方法 – 黄忠 – 博客

    本文信息本文由方法SEO顾问发表于2016-12-0316:04:40,共 1870 字,转载请注明:PowerMTA (PMTA) 的安装和设置方法 – 黄忠 – 博客_[方法SEO顾问],如果我网 ...

  6. linux基础操作_吃鱼的小脸猫_新浪博客

    一.系统的目录结构(文件系统) Linux是多用户(而权限的问题是针对于多用户的) Windows是单用户 系统的目录结构: 1. /bin : 可执行程序(命令) 2. /boot : 内核,与系统 ...

  7. PHP开发erp账号登陆问题,浪潮ERP软件E系列创建账套时提示“由于登陆不正确、请重新登陆” | 浪潮888博客...

    浪潮ERP软件E系列创建账套时提示"由于登陆不正确.请重新登陆" 数 据 库: MSDE2000 软件版本: E4 软件模块: 账套管理 问题描述: E系列创建账套时提示" ...

  8. 释放linux缓存文件命令,Linux定时释放缓存Shell脚本实现自动化运维 | kTWO-个人博客...

    使用Linux服务器的用户应该都知道,Linux在使用的时候,可用内存会随着时间慢慢的变小,最终可能到80%-90%,这个时候就需要我们去人工干预,来进行魂村的释放. 本文将使用Linux的Cron定 ...

  9. 今天终于把ati集成显卡的linux驱动装好了,看我的3D桌面!哈哈!(博客搬家 2007-07-28 15:56)

    重要里程碑 还有许多效果没贴上来,诸如立方体桌面之类.记得曾经看过一句话叫:有了Suse,还要vista干嘛?今天值得纪念,活活---

最新文章

  1. 大牛告诉你,只有突破程序员思维,才不会沦为码农!
  2. jquery.roundabout.js图片叠加3D旋转
  3. java spring多数据源配置文件_基于注解实现SpringBoot多数据源配置
  4. QQ能上 网页却打不开
  5. SPSS视频教程大合集
  6. 教室录播系统方案_《课堂教学录播专用教室》建设方案及装备标准
  7. 怎样允许计算机远程桌面连接,win10允许远程桌面连接如何设置_win10怎样设置允许远程桌面连接...
  8. 怎么删除win10的系统更新服务器,教你怎么永久删除Win10更新助手(Update Assistant)...
  9. 西南大学网络与继续教育学院课程考试试题卷
  10. Pocket英语语法---六、感官动词接不同的动词表示什么意思
  11. 幼儿园手工之自制时钟_幼儿园亲子手工之自制时钟玩教具,这样教孩子时间观念效果才明显...
  12. JavaScript判断浏览器版本
  13. 苹果登陆代理方法didCompleteWithAuthorization没有调用,didCompleteWithError没有走
  14. 电子产品PCB电路板散热的方法
  15. 夕阳红旅游团第四周报告
  16. 顿悟人生,一句话的人生哲理!
  17. 计算机学院校运会解说词,大学运动会方阵解说词
  18. excel数据文件转sav数据文件(matlab代码)
  19. secureCRT vscode配环境记录
  20. 转转闲鱼交易猫搭建教程

热门文章

  1. newcoder ACM模式
  2. Spring BeanPostProcessor接口详细使用
  3. reactjs组件实例的三大属性之props使用示例:在函数式组件中使用props
  4. reactjs组件通讯:子组件传递数据给父组件
  5. Spark on YARN cluster client 模式作业运行全过程分析
  6. Mac brew安装maven
  7. golang beego快速入门示例(单文件hello.go)
  8. Go语言web框架beego:脚手架bee的安装及创建beego项目
  9. Scala声明函数示例
  10. Jackson使用示例:将Java对象转换成Map