1 NPB介紹
NAS並行基準測試(NPB)是一套針對高並行超級計算機性能評估的基準測試。它們由NASA高級超級計算(NAS)部門(前身是NASA數值空氣動力學模擬程序)開發和維護,該部門位於NASA艾姆斯研究中心。基準來自計算流體動力學(CFD)應用程序,由原始“鉛筆和紙”規範(NPB 1)中的五個內核和三個僞應用程序組成。該基準套件已擴展爲包括針對非結構化自適應網格,並行I / O,多區域應用程序和計算網格的新基準。NPB中的問題大小是預定義的,並表示爲不同的類別。NPB的參考實現在MPI和OpenMP(NPB 2和NPB 3)等常用編程模型中可用。
1.1 基準測試規範
npb1中規定的最初八個基準模擬CFD應用中的計算和數據移動:
- 五個內核
- IS -整數排序,隨機內存訪問
- EP -令人尷尬的並行任務
- CG -共軛梯度,不規則的記憶存取和通信
- MG -多重網格對序列網格,長、短距離通信,內存密集型
- FT -離散三維快速傅里葉變換,全對全通信
- 三個僞應用程序
- BT -三對角求解器
- SP -五對角求解器
- LU -高斯求解器
1.2 問題規模
S級:較小,用於快速測試
W級:工作站大小(90年代的工作站;現在可能太小了)
A,B,C級:標準測試問題; 從一個類到下一個類,大小增加約4倍
D,E,F級:大型測試問題; 與之前的每個類相比,大小增加了約16倍
版本 | 基準 | 問題類別 | 使用的編程模型 | 主要變化 |
---|---|---|---|---|
NPB 3.4 | IS,EP,CG,MG,FT,BT,BT-10,SP,LU,UA,DC,DT | S,W,A,B,C,D,E,F | MPI,OpenMP | 添加了F類,動態內存分配 |
NPB 3.4-MZ | BT-MZ,SP-MZ,LU-MZ | S,W,A,B,C,D,E,F | MPI + OpenMP,OpenMP | 動態內存分配 |
NPB 3.3.1 | IS,EP,CG,MG,FT,BT,BT-10,SP,LU,UA,DC,DT | S,W,A,B,C,D,E | MPI,OpenMP,串行 | 增加了E類 |
NPB 3.3.1-MZ | BT-MZ,SP-MZ,LU-MZ | S,W,A,B,C,D,E,F | MPI + OpenMP,OpenMP,串行 | 嵌套的OpenMP版本 |
GridNPB 3.1 | ED,HC,VP,MB | S,W,A,B | Globus,Java,串行 | 添加了Globus版本 |
NPB 3.0 | IS,EP,CG,MG,FT,BT,SP,LU | S,W,A,B,C | OpenMP,HPF,Java | 新的編程範例 |
NPB 2.4.1 | IS,EP,CG,MG,FT,BT,BT-IO,SP,LU | S,W,A,B,C,D | MPI | 添加了BT-IO D類 |
NPB 2.3 | IS,EP,CG,MG,FT,BT,SP,LU | S,W,A,B,C | MPI,串行 | 添加了CG,串行版本 |
2 NPB的安裝和配置
(前提是已經安裝了MPI)
首先去NPB官網(https://www.nas.nasa.gov/publications/npb.html)下載NPB的安裝包。
下載好後,將壓縮包解壓出來。
tar -zxvf NPB3.3.1.tar.gz
cd NPB3.3.1
cd NPB3.3-MPI
cd config
cp make.def.template make.def
然後配置NPB,修改make.def的下列信息,其他信息不用修改
32行:MPIF77 = mpif77
39行:FMPI_LIB =
78行:MPICC = mpicc
87行:CMPI_LIB =
3 NPB使用
make <benchmark-name> NPROCS=<number> CLASS=<class> [SUBTYPE=<type>] [VERSION=VEC]
C類,D類和E類不適用於DT。類別E不適用於IS。“VERSION=VEC”選項用於選擇BT和LU的向量化版本。
以IS爲例,編譯指令爲 make IS(指定哪個程序)CLASS=B(指定問題規模)NPROCS=8(指定運行的處理器個數) #問題規模爲B,處理器個數爲8
cd NPB3.3.1
cd NPB3.3-MPI
make IS CLASS=B NPROCS=8
編譯完成後會在bin/文件夾下面生成is.B.8可執行文件
使用MPI運行IS.B.8這個文件,記得分配對應的核數,否則會報錯
mpirun -np 8 is.B.8
其他程序可以按照上述方式使用。