概览
- vim HPL.dat #打开配置文件,进而修改参数
- ./xhpl # 运行,如果正常的话就会直接跳出运行结果,没有出现就是出问题了,找老师或者学姐学长帮助吧
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)
"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
- 自己算-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
- 不用改(of NBS)
1 # of NBs
测试块的个数。
- 暂时不改,也没看懂
168 NBs
系数矩阵被分成NBs*NBs的循环块被分配到各个进程当中去处理,NBs大小作为计算粒度, 在很大程度上影响了计算性能的优劣;NBs最佳的取值在[32 ,256],取值大小由计算规模及平台来决定;NBs*8=Cache line的倍数。
- 随意,自己试一试
0 PMAP process mapping (0=Row-,1=Column-major)
处理器阵列形式。0为按行,1为按列;按行的排列方式适用于节点数较少、每个节点内CPU数较多的大规模系统;按列的排列方式适用于节点数较多、每个节点内CPU数较少的系统;在机群系统下,按列排列方式较好。
- 我的是1个CPU 8核 16线程。 不确定线程是不是就是进程
1 # of process grids (P x Q)
1 Ps
4 Qs
Ps × Qs为二维处理器网格,Ps与横向通信量有关,Qs与列向通信量有关;Ps*Qs=系统CPU数=进程数;Qs/4≤P≤Qs时,性能较优。因为列向通信量(通信次数和通信数据量)要远大于横向通信; Ps为2的幂。
8.不改
16.0 threshold
说明测试的精度。用于检测线性方程组求解结果是否正确;若误差在这个值以内就是正确,否则错误。所以没有必要修改此值。
- 不用改
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种算法:L、R、C,分别代表Left、Right和Crout;NDIVs选择2比较理想,NBMINs 4或8都不错;RFACTs和PFACTs,对性能的影响不大。
- 以下均默认即可,改了也不影响