NPB benchmark(NAS Parallel Benchmarks)使用、安装和配置

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 NPROCS= CLASS=     [SUBTYPE=] [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

其他程序可以按照上述方式使用。

 

你可能感兴趣的:(NPB,Nas,benchmark,benchmark)