Installing and configuring benchmarking programs

You must install and run 7 benchmark programs (6 NPB and 1 STREAM) on all compute nodes that will calculate coefficients (or make them available in a location accessible by all compute nodes).

About this task

Note: Run each benchmarking program as root.
Note: For better performance with STREAM, we recommend using icc to compile STREAM.
Important: After installing benchmarking programs, restart the LSF cluster.

The following steps will guide you through downloading and installing these benchmarking programs:


  1. Download the NPB-NAS source code (Version: NPB 3.3) Parallel benchmarks ( The six benchmarks in NPB 3.3 are: bt.C, cg.C, ep.D, lu.C, sp.C, and ua.C.
  2. Download the STREAM source code (
  3. Unpack the NPB3.3 benchmarks in the compute nodes and go to the NPB-OMP directory. For example:
    ~/benchmarks/NASA/NPB3.3/NPB3.3-OMP # ls -F
    BT/  CG/  DC/  EP/  FT/  IS/  LU/  MG/  
    Makefile*  README*  README.install*  
    SP/  UA/  bin/  common/  config/  sys/
  4. Integrate the STREAM source code with the NASA-OMP source code:
    1. Create a directory called ST under the NPB3.3-OMP directory and copy the STREAM source code into that directory. For example:
      ~/benchmarks/NASA/NPB3.3/NPB3.3-OMP/ST # ls
      HISTORY.txt  LICENSE.txt  Makefile  READ.ME  mysecond.c  stream.c 
      stream.c.5.10  stream.f
    2. Modify the STREAM Makefile according to NPB3.3-OMP style. For example:
      ~/benchmarks/NASA/NPB3.3/NPB3.3-OMP/ST # cat Makefile
      include ../config/make.def
      OBJS = stream.o 
      include ../sys/make.common
      ${PROGRAM}: ${OBJS}
              ${CLINK} ${CLINKFLAGS} -o ${PROGRAM} ${OBJS} ${C_LIB}
      stream.o:               stream.c 
              ${CCOMPILE} stream.c
      clean:        - rm -f *.o *~ 
              - rm -f core
              - if [ -d rii_files ]; then rm -r rii_files; fi
    3. Modify the NPB3.3-OMP Makefile to add the STREAM benchmark. The following in an example of the NPB3.3-OMP Makefile:
      ~/benchmarks/NASA/NPB3.3/NPB3.3-OMP # cat MakefileSHELL=/bin/sh
      default: header
              @ sys/print_instructions
      BT: btbt: header
              cd BT; $(MAKE) CLASS=$(CLASS) VERSION=$(VERSION)
      ST: st
      st: header             
              cd ST; $(MAKE) CLASS=$(CLASS)
    4. Generate the NPB3.3-OMP definition file from the suite.template and select the benchmarks to use for LSF energy. For example:

      ~/benchmarks/NASA/NPB3.3/NPB3.3-OMP/config # cp suite.def.template suite.def

    5. Change the suite.def file as follows:
      ~/benchmarks/NASA/NPB3.3/NPB3.3-OMP/config # cat suite.def
      # config/suite.def
      # This file is used to build several benchmarks with a single command. 
      # Typing "make suite" in the main directory will build all the benchmarks
      # specified in this file. 
      # Each line of this file contains a benchmark name and the class.
      # The name is one of "cg", "is", "dc", "ep", mg", "ft", "sp",
      #  "bt", "lu", and "ua". 
      # The class is one of "S", "W", "A" through "E" 
      # (except that no classes C,D,E for DC and no class E for IS and UA).
      # No blank lines. 
      # The following example builds sample sizes of all benchmarks. 
      sp      C
      lu      C
      bt      C
      ep      D
      cg      C
      ua      C
      st      U
      Note: The last line st U is for the STREAM benchmark.
    6. Generate make.def from the make.def.template and configure the compiler name.
      Note: GCC and GFortran are required on each compute node to compile the benchmark data. Set the proper compiler name in the make.def file:
      CC = cc
      F77 = gfortran
  5. Compile the benchmarks: ~/benchmarks/NASA/NPB3.3/NPB3.3-OMP # make suite The binaries are saved into the NPB3.3-OMP bin directory:
    ~/benchmarks/NASA/NPB3.3/NPB3.3-OMP # cd bin
    ~/benchmarks/NASA/NPB3.3/NPB3.3-OMP/bin # ls
    bt.C  cg.C  ep.D  lu.C  sp.C  st.U  ua.C