原文链接:http://muchong.com/t-2238311-1-pid-3
并行平台构建与管理[8]:并行测试 GotoBLAS+hpl测试之L.dat各行意义及其设置
HPL.dat文件见附件 下面说说每行的意思和设置方法 1、2行,这个是说明性语句,不用更改。 3、4行,指定输出方式,加入4行选择file输出,则3表示输出文件名,这个名字可以根据你自己的习惯更改。比如,你测试16节点,为了区分其他测试,可以改为16nodes.out等等。 5、6行,5行相当于说你要测试的矩阵个数,第6行则是矩阵规模,第六行设置的数字必须不小于5行的大小。第6行的设置原则是:N^2*64=节点内存*节点数*8,N=0.8~0.9N。举个例子,我每节点有2G内存,4节点,N的算法为:N^2*64=1024*1024*1024*2*4*8,-〉N=32000~33000,再*0.8~0.9即可。按照经验,在0.9左右效果会更好。 7、8行设置矩阵分块方法。第7行是指分块方法的种数,第八行是指分块的大小,根据经验,对于GotoBLAS在AMD4000+上,用196,232,256效果比较好,当然其他也有一些说法,不过本人觉得经验性比较强,所以多试试总会有很好的结论。 9行是HPL 1.0a的新增项,是选择处理器阵列是按列的排列方式还是按行的排列方式。 10~12行说明二维处理器网格(P×Q)。二维处理器网格(P×Q)的要遵循以下几个要求:P×Q=进程数。这是HPL的硬性规定;P×Q=系统CPU数=进程数。一般来说一个进程对于一个CPU可以得到最佳性能。对于Intel Xeon来说,关闭超线程可以提高HPL性能;P≤Q,这是一个测试经验值,一般来说,P的值尽量取得小一点,因为列向通信量(通信次数和通信数据量)要远大于横向通信.等等这些,需要测试者多摸索。 后面的可以不用修改。 13行说明阈值。 第14~21行指明L分解的方式。 附件: 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) 4 # of problems sizes (N) 10000 10000 10000 10000 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) 1 1 1 Ps 1 1 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) |