1,HPL.dat 内容和主体结构
在编译完成后,bin/$(arch)/HPL.dat 内容如下:
$ cat HPL.dat
HPLinpack benchmark input file
Innovative Computing Laboratory, University of Tennessee
HPL.out output file name (if any)
file device out (6=stdout,7=stderr,file)
4 # of problems sizes (N)
29 30 34 35 Ns
4 # of NBs
1 2 3 4 NBs
0 PMAP process mapping (0=Row-,1=Column-major)
3 # of process grids (P x Q)
2 1 4 Ps
2 4 1 Qs
16.0 threshold
3 # of panel fact
0 1 2 PFACTs (0=left, 1=Crout, 2=Right)
2 # of recursive stopping criterium
2 4 NBMINs (>= 1)
1 # of panels in recursion
2 NDIVs
3 # of recursive panel fact.
0 1 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)
该文件的前两行位说明性信息,3行到末尾,右侧占大篇幅的文本为help信息,可以删除;只有左侧的大部分以数字形式出现的内容为 有效的配置信息。
2,HPL.dat的详细说明
其实文字部分已经做了简要说经,
有些信息在这个函数中有说明:
https://www.netlib.org/benchmark/hpl/HPL_pdinfo.html
HPL.dat 逐行说明总结:
1,说明性信息,忽略
2,说明性信息,忽略
3,指定测试输出文件的名字,可以随意命名,但是否启用由4-th 行规定。
4,指定测试输出的方向,值可以是:6,7,file 这三种。
6 将信息输出到标准输出,
7 将信息输出到标准错误输出,
file/any 输出到 3-th line 指定的文件名的文件中。
5,测试方程组的个数,即矩阵的个数 Ns
6,对应 5-th line 中的矩阵个数,每个矩阵的阶数 N
7,分块方案的个数 NBs
8,每个分块的具体的边长列表 NB
9,0 row-major; 1 column-major;进程在 grid 中的主序;
On exit, PMAPPIN specifies the process mapping onto the no-
des of the MPI machine configuration. PMAPPIN defaults to
row-major ordering.
10,进程布局方案个数 (P,Q) 的组合个数;P*Q = 集群中 cpu 物理core的总数时性能最佳,比如Intel志强cpu,不开启超线程时,HPC 性能更佳;
HPL中,L分解的列向量通信采用 Binary Exchange 方式,可以检查一下 rocHPL是否依然如此。这对P的选择有关系,例如是否应该强调使用 P =2^n
11,具体的 P 的列表
12,具体的 Q 的列表
13,测试精度的阈值;对AX=B的计算结果进行检测时的对比阈值;小于此值则正确,大于此值则错误;对时很小,错时很大,不用改动。
第14~21行指明L分解的方式。
在消元过程中,HPL采用每次完成NB列的消元,然后更新后面的矩阵。这NB的消元就是L的分解。每次L的分解只在一列处理器中完成。
对每一个小矩阵作消元时,都有3种算法:L、R、C,分别代表Left、Right和Crout。
在LU分解中,具体的算法很多,测试经验,NDIVs选择2比较理想,NBMINs 设置4或8都不错,而对于RFACTs和PFACTs,对性能的影响不大。
14,采用 panel factorization 算法的个数
15,具体的 panel factorization 算法列表;
具体为如下三种:
0:Left looking lu fact variant
1: Crout lu fact variant
2: Right looking lu fact variant
16,迭代停止标准
17,NBMINs >= 1,推荐取4或8试试
18,# of panels in recursion,根据19的设定个数。
19,NDIVs 推荐取2试试,一般不错
20,可以取3,21-th line 都试一下。一般差不多
21,RFACTs (0=left, 1=Crout, 2=Right)
22,第22、23行说明L的横向广播方式,HPL中提供了6种广播方式。其中,前4种适合于快速网络;
后两种采用将数据切割后传送的方式,主要适合于速度较慢的网络。
一般来说,在小规模系统中,选择0或1;对于大规模系统,选择3。
23,BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
24,第24、25行说明横向通信的通信深度。这依赖于机器的配置和问题规模的大小。
25,DEPTHs (>=0)
26,第26,27行说明U的广播算法。U的广播为列向广播,HPL提供了3种U的广播算法:
二元交换(Binary Exchange)法、Long法和二者混合法。SWAP="0",
采用二元交换法;SWAP="1",采用Long法;SWAP="2",采用混合法,即,SWAP (0=bin-exch,1=long,2=mix);一般使用2=mix 会比较好。
27,一般设为60+
28,L的存放格式, 0:按列;1:按行;
29,U的存放格式, 同上。
30,是否回代
31,内存分配对齐的字节数

987

被折叠的 条评论
为什么被折叠?



