配置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%这样
转载于:https://www.cnblogs.com/Olivia1011/p/7778890.html
相关资源:JAVA上百实例源码以及开源项目