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:
Procedure
- Download the NPB-NAS source code (Version: NPB 3.3)
Parallel benchmarks (https://www.nas.nasa.gov/cgi-bin/software/start).
The six benchmarks in NPB 3.3 are: bt.C, cg.C, ep.D, lu.C, sp.C,
and ua.C.
- Download the STREAM source code (http://www.cs.virginia.edu/stream/FTP/Code/).
- 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/
- Integrate the STREAM source code with the NASA-OMP source
code:
- 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
- Modify the STREAM Makefile according to NPB3.3-OMP style.
For example:
~/benchmarks/NASA/NPB3.3/NPB3.3-OMP/ST # cat Makefile
SHELL=/bin/sh
BENCHMARK=st
BENCHMARKU=ST
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
- 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
CLASS=W
VERSION=
SFILE=config/suite.def
default: header
@ sys/print_instructions
BT: btbt: header
cd BT; $(MAKE) CLASS=$(CLASS) VERSION=$(VERSION)
ST: st
st: header
cd ST; $(MAKE) CLASS=$(CLASS)
- 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
- 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.
- 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:
make.def:
...
CC = cc
F77 = gfortran
- 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