Linpack【MPICH + GotoBLAS2 + HPL】参数配置详解

概览

  1. vim HPL.dat #打开配置文件,进而修改参数
  2. ./xhpl # 运行,如果正常的话就会直接跳出运行结果,没有出现就是出问题了,找老师或者学姐学长帮助吧

HPL.dat参数分析

  1. 不用改
HPLinpack benchmark input file

Innovative Computing Laboratory, University of Tennessee

说明性文字,不需作修改。
  1. 一般不用改,详情看下面即可
HPL.out     output file name (if any)

6               device out (6=stdout,7=stderr,file)

"device out""6"时,测试结果输出至标准输出(stdout);

"device out""7"时,测试结果输出至标准错误输出(stderr);

"device out"为其它值时,测试结果输出至第三行所指定的文件中。
————————————————
版权声明:本文为CSDN博主「Rhodri0208」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38607058/article/details/125187661
  1. 自己算-NS
1           # of problems sizes (N)   #矩阵的数量,如1即一个矩阵。

37361    Ns

问题规模大小Ns值,
计算方式:
Ns×Ns×8=系统总内存(Byte)×80%
涉及问题:
系统总内存:(https://blog.csdn.net/XUAN528XUAN/article/details/126584798)
单位换算:【上面的链接得到的是GB,我们公式用的是B,需要单位换算,不理解的看下面的连接】(https://blog.csdn.net/weixin_45142314/article/details/122197638)
我的公式:NS^2=1024*1024*1024*13*0.1 #13是总内存
NS=37361
  1. 不用改(of NBS)
1            # of NBs

测试块的个数。
  1. 暂时不改,也没看懂
168  NBs

系数矩阵被分成NBs*NBs的循环块被分配到各个进程当中去处理,NBs大小作为计算粒度,  在很大程度上影响了计算性能的优劣;NBs最佳的取值在[32256],取值大小由计算规模及平台来决定;NBs*8=Cache line的倍数。
  1. 随意,自己试一试
0            PMAP process mapping (0=Row-,1=Column-major)

处理器阵列形式。0为按行,1为按列;按行的排列方式适用于节点数较少、每个节点内CPU数较多的大规模系统;按列的排列方式适用于节点数较多、每个节点内CPU数较少的系统;在机群系统下,按列排列方式较好。
  1. 我的是1个CPU 8核 16线程。 不确定线程是不是就是进程
1               # of process grids (P x Q)

1      Ps

4      Qs

Ps × Qs为二维处理器网格,Ps与横向通信量有关,Qs与列向通信量有关;Ps*Qs=系统CPU=进程数;Qs/4P≤Qs时,性能较优。因为列向通信量(通信次数和通信数据量)要远大于横向通信;  Ps为2的幂。

8.不改

16.0         threshold

说明测试的精度。用于检测线性方程组求解结果是否正确;若误差在这个值以内就是正确,否则错误。所以没有必要修改此值。
  1. 不用改
1            # of panel fact

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

1            # of recursive stopping criterium

4            NBMINs (>= 1)

1            # of panels in recursion

2            NDIVs

1            # of recursive panel fact.

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

指明L分解的方式。在消元过程中,zHPL采用每次完成NB列的消元,然后更新后面的矩阵。  NB的消元就是L的分解;每次L的分解只在一列处理器中完成。对每一个小矩阵作消元时,都有3种算法:LRC,分别代表Left、Right和Crout;NDIVs选择2比较理想,NBMINs 48都不错;RFACTs和PFACTs,对性能的影响不大。
  1. 以下均默认即可,改了也不影响
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux下进行Linpack测试CPU性能的关键参数配置包括: 1. 线程数(Number of Threads):决定Linpack测试中使用的并行线程数量。可以根据CPU核心数目和线程数进行调整,一般建议将线程数设置为和CPU核心数目相同或略小的数量。 2. 问题规模(Problem Size):表示Linpack测试中计算矩阵的尺寸。可以通过调整问题规模来测试不同程度的CPU负载。通常使用N、NB、P三个参数来定义问题规模。 - N(尺寸):指定矩阵的大小,决定了问题规模的大致范围。 - NB(分块尺寸):指定矩阵的分块尺寸,用于提高缓存效率,通常设置为16或32。 - P(进程数量):指定进行计算的进程数目,通常设置为1。 3. 精度(Precision):指定Linpack测试中所使用的浮点数精度,可以选择单精度(single)或双精度(double)。 4. 线程绑定(Thread Binding):可选择是否对Linpack测试中的线程进行绑定到特定的CPU核心,以避免线程的切换带来的性能损失。 执行Linpack测试的命令为: ``` ./xlinpack_xeon64 -D N -s NB -p Precision -t Number_of_Threads -b ``` 其中,xlinpack_xeon64为Linpack测试的可执行文件名,N为问题规模中的尺寸参数,NB为分块尺寸参数,Precision为精度参数,Number_of_Threads为线程数参数,-b选项用于开启线程绑定。 例如,若希望进行一个尺寸为5000、分块尺寸为32的双精度测试,并使用8个线程进行计算,并开启线程绑定,命令如下: ``` ./xlinpack_xeon64 -D 5000 -s 32 -p double -t 8 -b ``` 执行该命令后,Linpack测试将会以指定的参数进行计算,并输出测试结果,包括计算速度(MFLOPS),以及矩阵校验结果。根据测试结果可以评估CPU的性能表现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值