linpack测试工具使用说明
目錄
1. linpack測試工具
1.1. linpack簡介
1.2. mpi簡介
2. linpack配置文件及參數含義
2.1. 概覽
2.2. HPL.dat參數分析
3. linpack使用及結果分析
3.1. linpack編譯運行
3.2. linpack結果分析
3.2.1. linpack結果效率計算
3.2.2. 占用內存空間
4. linpack調試參數的一些心得
5. 使用pts運行linpack
5.1. 安裝pts
5.2. 運行linpack
全稱為線性系統軟件包(Linear system package) 。
剛開始是一套專門解線性系統問題之數學軟件;現在在國際上已經成為最流行的用于測試高性能計算機系統浮點性能的benchmark。
完成的任務:
通過利用高性能計算機,用高斯消元法求解N元一次稠密線性代數方程組的測試,評價高性能計算機的浮點性能(Ax=B)。測試分成三類,Linpack100、Linpack1000和HPL。前兩者限制了規模;HPL即High Performance Linpack,也叫高度并行計算基準測試,可以通過調整數組大小N等各參數進行優化。
全稱為消息傳遞接口(Message passing interface),是一個跨語言的通訊協議,也是高性能計算領域開發并行應用的標準API。
? 超算的高性能使用方式即是通過編程,使得作業具有多節點協作的能力,而多個節點之間的協作是通過MPI來實現的。通過調用MPI并行庫實現的方法來實現并行化,只需要安裝MPI庫,那么就可以用原來的編譯器來進行編譯運行。高性能、大規模性和可移植性。有多種實現版本,如 MPICH,OpenMPI以及CHIMP等。
HPL.dat——linpack測試中各個參數配置
run.sh——運行文件
setlargepage.sh——內存大頁設置
linpack.log——結果記錄文檔
| 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"為其它值時,測試結果輸出至第三行所指定的文件中。 |
| 1 ???????????# of problems sizes (N)???#矩陣的數量,如1即一個矩陣。 105728 91392 73248 51744 44800 ???????Ns 問題規模大小Ns值,Ns×Ns×8=系統總內存(Byte)×80%計算出的Ns一般為最大規模。 |
| 1 ???????????# of NBs 測試塊的個數。 |
| 112 120 128 ?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 ??????????????# of process grids (P x Q) 2 2 1 4 ?????Ps 8 2 4 1 ?????Qs Ps × Qs為二維處理器網格,Ps與橫向通信量有關,Qs與列向通信量有關;Ps*Qs=系統CPU數=進程數;Qs/4≤P≤Qs時,性能較優。因為列向通信量(通信次數和通信數據量)要遠大于橫向通信; ?Ps為2的冪。 |
| 16.0 ????????threshold 說明測試的精度。用于檢測線性方程組求解結果是否正確;若誤差在這個值以內就是正確,否則錯誤。所以沒有必要修改此值。 |
| 1 ???????????# of panel fact 1 1 2 ???????PFACTs (0=left, 1=Crout, 2=Right) 1 ???????????# of recursive stopping criterium 4 2 ?????????NBMINs (>= 1) 1 ???????????# of panels in recursion 2 ???????????NDIVs 1 ???????????# of recursive panel fact. 1 0 2 ???????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,對性能的影響不大。 |
| 1 ???????????# of broadcast 0 ???????????BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM) HPL中提供了6種廣播方式。前4種適合于快速網絡;后兩種采用將數據切割后傳送的方式,主要適合于速度較慢的網絡。機群系統一般采用千兆以太網甚至光纖等高速網絡,所以一般不采用后兩種方式。一般來說,在小規模系統中,選擇0或1;對于大規模系統,選擇3。 |
| 1 ???????????# of lookahead depth 1 ???????????DEPTHs (>=0) 說明橫向通信的通信深度。這依賴于機器的配置和問題規模的大小。 |
| 0 ???????????SWAP (0=bin-exch,1=long,2=mix) 256 ???????swapping threshold 說明U的廣播算法。U的廣播為列向廣播,HPL提供了3種U的廣播算法:SWAP="0",采用二元交換(Binary Exchange)法;SWAP="1",采用Long法;SWAP="2",采用二則混合法。 |
| 1 ???????????L1 in (0=transposed,1=no-transposed) form 1 ???????????U ?in (0=transposed,1=no-transposed) form 分別說明L和U的數據存放格式。若選擇"transposed",則采用按列存放,否則按行存放。 |
| 0 ???????????Equilibration (0=no,1=yes)……主要在回代中使用,一般使用其默認值 8 ???????????memory alignment in double (> 0) ……主要為內存地址對齊而設置,用于在內存分配中對齊地址。出于安全考慮,可以選擇8 |
-n 8:8為需要修改的核心數,需要修改核心數使其與HPL.dat中的Ps*Qs的值相同。
以下為內存大頁設置
運行步驟:
1. ??vim HPL.dat,修改參數值
2. ??vim run.sh,修改核心數
3. ??./run.sh,運行
4. ??運行結束后,輸入cat linpack.log查看結果然后計算效率。
linpack結果記錄文檔
GFLOPS:全稱為Giga Floating-point Operations Per Second,即每秒10億次的浮點運算數,常作為GPU性能參數。
理論峰值=主頻率*核心數*每周期浮點運算次數
效率=實際峰值/理論峰值*100%
舉例計算上圖效率:
理論峰值=2.4GHz*2(核心數)*16(每周期浮點運算次數)=76.8GFlops
效率=51.80/76.8*100%=67.4%
因為設置了內存大頁,所以通過輸入free -h命令查看的內存大小不會發生變化。
所以通過top命令查看,占用內存空間=單個進程使用的虛擬內存量*進程數。
占用內存空間=單個進程使用的虛擬內存量*進程數=11.8G*8=94.4G
結論一:通過調節矩陣規模N,可小幅度提升效率
結論二:P和 Q 接近時有利于進程之間的負載平衡 ,行列方向通信能夠保持平衡 ,否則可能同一對處理器之間要進行大量消息的通信;在 此前提下,P要稍小于 Q,因為根據 Linpack的算法,列向通信量要大于行向通信量,使列向的進程稍多一些可以減少通信開銷。以上是官方解釋,但實際測試結果是在32核情況下,2*16的效率優于4*8,16核也是這樣。
結論三:其余參數在調試的時候,例如:當只變化某一個參數的時候,在某一核下效率提高,其他核就未必,因此參數之間的規律目前還沒找到。
#tar xf phoronix-test-suite-10.8.2.tar.gz
#cd phoronix-test-suite/
#./install-sh
#phoronix-test-suite benchmark hpl
注:打開另一個終端,可看到xhpl進程運行中即可,ctrl + c切斷,以下可通過pts框架安裝好的hpl進行配置文件的靈活修改
目錄位置:/var/lib/phoronix-test-suite/installed-tests/pts/hpl-1.0.0/hpl-2.3/testing
測試命令為:/usr/lib64/openmpi/bin/mpirun --allow-run-as-root -np 128(核數) ./xhpl
總結
以上是生活随笔為你收集整理的linpack测试工具使用说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯AI Lab NLP团队首次曝光,张
- 下一篇: Axiom3D学习日记 0.Axiom基