ubuntu上的inpack测试

测试linpack

配置

配置linpack环境是整个过程中最麻烦的,也可能是因为我在配置的过程中出现了很多小问题吧。大概有3天的时间除了上课就在配置环境。

问题

总结起来问题和解决方法有这些

1、路径设置问题
2、source 的位置(profilehe 和.bashrc)
3、权限问题
4、莫名其妙的问题(解决方法:重装)

做的太着急了,没有截图... 下次要养成截图的习惯!

测试

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)
11900 340 35  Ns
1            # of NBs
224 192 192 192      NBs
0            PMAP process mapping (0=Row-,1=Column-major)
1            # of process grids (P x Q)
1 1 1        Ps
4 4 4        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)

其中我们需要修改来优化配置的参数有以下:
1、Ns 矩阵的大小

N×N×8 =系统总内存×80%。

注意这里的系统总内存是指可用内存,以B为单位

我的N=11900

2、NBs 求解矩阵分块的大小

为提高数据的局部性,从而提高整体性能,HPL采用分块矩阵的算法。分块的大小对性能有很大的影响,NB的选择和软硬件许多因素密切相关。
NB值的选择主要是通过实际测试得到最优值。但NB的选择上还有一些规律可寻,如:NB不可能太大或太小,一般在256以下; NB×8一定是Cache line的倍数例如,我们的L2缓存为1024K,NB就设置为192
另外,NB大小的选择还跟通信方式,矩阵规模,网络,处理器速度等有关系。一般通过单节点或单CPU测试可以得到几个较好的NB值,但当系统规模增加,问题规模变大,有些NB取值所得性能会下降。所有最好在小规模测试时选择3个左右性能不错的NB,再通过大规模测试检验这些选择。

实践证明224比196要好

3、P Q 二维处理器网格(P×Q)
要求:
(1)P×Q =系统CPU数=进程数
(2)P≤Q
我的进程数是4 实践证明1X4优于2X2

理论值的计算方法

结果参数:

time:运算的时间
Gflops:进行浮点运算的次数

执行语句:mpirun -np x ./xhpl

X为操作系统的进程数或其倍数
我的x=4

最优结果:

是理论值的40%这样

心得体会:

配置环境确实是一个很麻烦的事情,我用了整整3天,最后的测试其实只用了一天。但是我觉得自己的hpl测试还没有达到最高值,后面有时间再慢慢测试。不过经历过这个过程之后,写命令行的能力确实提高了很多 。这周要学习forturn语言,不过软工的冲刺也在这周,合理安排时间吧。
原文地址:https://www.cnblogs.com/Olivia1011/p/7778890.html