Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
boxes
bp1
bp3
bp5
README.md
SIZE
bp_main.sh
make-boxes.sh
makenek
postprocess-base.py
postprocess-plot-1.py
postprocess-plot-2.py
postprocess-plot-3.py
postprocess-plot-4.py
postprocess-table.py
submit.sh

README.md

Bake-off/benchmark problems with Nek5000

Required tools

  • bash
  • make
  • git
  • wget or curl

Building Nek5000 tools

First, you may need to create a configuration for your machine, e.g. by copying and modifying one of the existing machine-configs/*.sh files if you have not already done so. Then you can build Nek5000 tools using the following command:

../../go.sh --config vulcan --compiler gcc --build "nek5000"

or the equivalent shorter version:

../../go.sh -c vulcan -m gcc -b "nek5000"

To see a list of the available configs use ./go.sh or generally use ./go.sh --help for help. These configs correspond to the scripts machine-configs/<name>.sh.

To see the available compilers for a config use ./go.sh --config <name>.

Generating box meshes

A set of box meshes can be generated before running the benchmarks (the set of meshes generated by this script can be changed by editing the script)

../../go.sh -c vulcan -m gcc -r make-boxes.sh

Note that the benchmark scripts will generate the box meshes that they need if they are not pre-generated.

Running the benchmarks

Once the tools are built, you can run Nek5000 benchmarks using the following command:

../../go.sh --config vulcan --compiler gcc --run bp1/bp1.sh -n 16 -p 16

or the equivalent shorter version:

../../go.sh -c vulcan -m gcc -r bp1/bp1.sh -n 16 -p 16

where -n 16 is the total number of processors and -p 16 is the number of processors per node.

Multiple processor configurations can be run with:

../../go.sh -c vulcan -m gcc -r bp1/bp1.sh -n "16 32 64" -p "16 32 64"

Postprocessing the results

First, save the output of the run to a file:

../../go.sh -c vulcan -m gcc -r bp1/bp1.sh -n 16 -p 16 > run_001.txt

and then use one of the postprocess-plot-*.py scripts (which require the python package matplotlib) or the postprocess-table.py script, e.g.:

python postprocess-plot-1.py run_001.txt

Note that the postprocess-*.py scripts can read multiple files at a time just by listing them on the command line and also read the standard input if no files were specified on the command line.

Plotting performance comparisons

The script postprocess-plot-4.py can be used to plot the performance ratios between two sets of data, e.g. vector (BP2) vs scalar (BP1). Sample usage:

python postprocess-plot-4.py bp1-bp2_gcc_n16.txt