Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

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:

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

or the equivalent shorter version:

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

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

To see the available compilers for a config use ./ --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)

../../ -c vulcan -m gcc -r

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:

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

or the equivalent shorter version:

../../ -c vulcan -m gcc -r bp1/ -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:

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

Postprocessing the results

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

../../ -c vulcan -m gcc -r bp1/ -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 script, e.g.:

python 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 can be used to plot the performance ratios between two sets of data, e.g. vector (BP2) vs scalar (BP1). Sample usage:

python bp1-bp2_gcc_n16.txt