NPB全称为NAS Parallel Benchmark,与linpack一样是最常用的并行计算机基准测试程序。可以从
http://www.nas.nasa.gov/Resources/Software/npb.html
下载自己需要的版本。本文以NPB2.4为例简单介绍了NPB的安装与运行要点。
1。下载NPB2.4.tar.gz,解压。
2。cp conf/make.def.template conf/make.def
3。修改conf/make.def文件:
33行:MPIF77=mpif77 #设定编译器
35行:FLINK = mpif77
40行:FMPI_LIB = -L/data2/software/mpich-gcc/lib -lmpich #连接器会到这里找MPICH库
45行:FMPI_INC = -I /data2/software/mpich-gcc/include #mpif.h在该路径下
80行: MPICC = mpicc
82行:CLINK = mpicc
87行: CMPI_LIB = -L/data2/software/mpich-gcc/lib/ -lmpich
93行:CMPI_INC = -I /data2/software/mpich-gcc/include #mpi.h在该路径下
4。编译
以IS程序为例,在解压缩后的NPB2.4-MPI目录下执行:
make IS CLASS=A NPROCS=16 #问题规模为A,处理器个数为16
即会在NPB2.4-MPI/bin/目录下生成is.A.16可执行文件。也可以将所有程序全部一次性编译出来,这里不做介绍。
5。执行
假设机器上安装了torque(没有的话直接mpiexec或mpirun),则编写如下脚本(假设脚本名为test.sh):
#!/bin/sh
#PBS -N IS_TEST //指定任务名
#PBS -o IS_TEST.log//指定标准输出
#PBS -e IS_TEST.err//指定标准出错
#PBS -q batch //指定任务队列
#PBS -l nodes=16//指定进程数
cd /home/xx/NPB2.4/NPB2.4-MPI/bin
echo TIME is `date`
echo DIRECTORY is $PWD
echo This job runs on following nodes:
cat $PBS_NODEFILE
NPROCS=`wc -l < $PBS_NODEFILE`
echo This job has been allocated $NPROCS nodes
mpirun -machinefile $PBS_NODEFILE -np $NPROCS ./is.A.16 //执行
执行:qsub test.sh
执行:qstat,即可以看到任务状态
执行完毕后,打开 IS_TEST.log,就可以得到结果了。
http://www.nas.nasa.gov/Resources/Software/npb.html
下载自己需要的版本。本文以NPB2.4为例简单介绍了NPB的安装与运行要点。
1。下载NPB2.4.tar.gz,解压。
2。cp conf/make.def.template conf/make.def
3。修改conf/make.def文件:
35行:FLINK = mpif77
45行:FMPI_INC = -I /data2/software/mpich-gcc/include #mpif.h在该路径下
80行: MPICC = mpicc
82行:CLINK = mpicc
87行: CMPI_LIB = -L/data2/software/mpich-gcc/lib/ -lmpich
93行:CMPI_INC = -I /data2/software/mpich-gcc/include #mpi.h在该路径下
4。编译
以IS程序为例,在解压缩后的NPB2.4-MPI目录下执行:
make IS CLASS=A NPROCS=16 #问题规模为A,处理器个数为16
即会在NPB2.4-MPI/bin/目录下生成is.A.16可执行文件。也可以将所有程序全部一次性编译出来,这里不做介绍。
5。执行
假设机器上安装了torque(没有的话直接mpiexec或mpirun),则编写如下脚本(假设脚本名为test.sh):
#!/bin/sh
#PBS -N IS_TEST //指定任务名
#PBS -o IS_TEST.log//指定标准输出
#PBS -e IS_TEST.err//指定标准出错
#PBS -q batch //指定任务队列
#PBS -l nodes=16//指定进程数
cd /home/xx/NPB2.4/NPB2.4-MPI/bin
echo TIME is `date`
echo DIRECTORY is $PWD
echo This job runs on following nodes:
cat $PBS_NODEFILE
NPROCS=`wc -l < $PBS_NODEFILE`
echo This job has been allocated $NPROCS nodes
mpirun -machinefile $PBS_NODEFILE -np $NPROCS ./is.A.16 //执行
执行:qsub test.sh
执行:qstat,即可以看到任务状态
执行完毕后,打开 IS_TEST.log,就可以得到结果了。