This directory contains the OpenMP implementation of the NAS Parallel Benchmarks, Version 3.3 (NPB3.3-OMP). These were used as part of the Rutger's Fall 2015 Computer Architecture Class. For more information about the full suite please refer to README.nasa.
We currently have is set-up to compile using gcc for an x86 architecture. This
can be seen in the file ./config/make.def
.
We also have it set-up to only compile problem sizes A,B,C,S and W. This can be seen
in the file ./config/suite.def
.
To compile (in a *inx environment) simply run ./compile_suite.sh
all the generated executables
will be found in ./bin/
and will be in the format of <program>.<class>.x
for example, for the
program BT with class A the executable will be bt.A.x
.
For a full explanation of compilation and running of the benchmarks in other architectures and different class sizes please refer to README.install.
We included the ./run_all.sh
shell script to ease execution of the programs and
should work on any *inx environment. Tun run them simply run ./run_all.sh <Threads> <Runs>
where <Threads>
means the max number of threads to run (it will run from 1 to <Threads>
)
and <Runs>
means the number of iterations to run for each one. For example, to run
all benchmarks from 1 - 8 treads 5 times you will run:
./run_all.sh 8 5
This will generate a folder called ./outputs/
which will contain a .out
file for each program/run.
The format of this file is <program>.T<thread>.run<run>.out
where <program>
is the name
of the program's executable, <thread>
is the current thread and <run>
is the current run.
For example bt.A.x.T2.run5.out
represents the output file for the program bt.A.x
on thread 2
and run 5.
For convinience, we also included the ./outputs_to_csv.py
python script that will combine all of the results into two .csv
files in the directory ./csv/
. The two files are:
npb-benchmark-all-output.csv
: Contains timings for all sub-sections of a program, as reported by the benchmark.npb-benchmark-total-output.csv
: Contains only total execution time for the program as a whole.
To run, you need to have python 2.7.9+ installed, then simply do: python outputs_to_csv.py
.
We also included two other directories ./result_outputs_archived
which include the collected raw
output files generated by our runs, and ./result_graphs/
includes the results in .xlsx
format
with graphs and pivots tables for visualizing the data.
Follow the format: NPB-outputs-t<threads>-<os>-[no]timerflag[-affinity].zip
where you show the number
of threads used, the OS, if we had the option to show all timers via the timerflag and if we used
OpenMP affinity options.
- NPB-outputs-t4-linux-timerflag-affinity.zip
- NPB-outputs-t4-linux-timerflag.zip
- NPB-outputs-t4-mac-notimerflag.zip
- NPB-outputs-t8-mac-timerflag.zip
- NPB-outputs-t8-osx-timerflag.zip
- NPB-outputs-t8-win-notimerflag.zip
Follow the format: npb-benchmark-t<threads>-<os>[-affinity].xlsx
where you show the number
of threads used, the OS, if we had the option to show all timers via the timerflag and if we used
OpenMP affinity options.
- npb-benchmark-all-t4-linux.xlsx
- npb-benchmark-all-t4-linux-affinity.xlsx
- npb-benchmark-all-t4-mac.xlsx
- npb-benchmark-all-t8-mac.xlsx
- npb-benchmark-total-t4-linux.xlsx
- npb-benchmark-total-t4-linux-affinity.xlsx
- npb-benchmark-total-t4-mac.xlsx
- npb-benchmark-total-t4-win.xlsx
- npb-benchmark-total-t8-mac.xlsx
- npb-benchmark-total-t8-win.xlsx