xref: /libCEED/benchmarks/README.md (revision cb32e2e7f026784d97a57f1901677e9727def907)
1# libCEED: Benchmarks
2
3This directory contains benchmark problems for performance evaluation of libCEED
4backends.
5
6## Running the Benchmarks
7
8Example:
9```sh
10benchmark.sh -c /cpu/self -r petsc-bpsraw.sh -b bp1 -n 16 -p 16
11```
12where the option `-c <specs-list>` specifies a list of libCEED specs to
13benchmark, `-b <bp-list>` specifies a list of CEED benchmark problems to run,
14`-n 16` is the total number of processors and `-p 16` is the number
15of processors per node.
16
17Multiple backends, benchmark problems, and processor configurations can be
18benchmarked with:
19```sh
20benchmark.sh -c "/cpu/self/ref/serial /cpu/self/ref/blocked" -r petsc-bpsraw.sh -b "bp1 bp3" -n "16 32 64" -p "16 32 64"
21```
22
23The results from the benchmarks are written to files named `*-output.txt`.
24
25For a short help message, use the option `-h`.
26
27When running the tests `petsc-bpsraw.sh`, the following
28variables can be set on the command line:
29* `max_dofs_node=<number>`, e.g. `max_dofs_node=1000000` - this sets the upper
30  bound of the problem sizes, per compute node; the default value is 3*2^20.
31* `max_p=<number>`, e.g. `max_p=12` - this sets the highest degree for which the
32  tests will be run (the lowest degree is 1); the default value is 8.
33
34## Post-processing the results
35
36After generating the results, use the `postprocess-plot.py` script (which
37requires the python package matplotlib) or the `postprocess-table.py` script,
38e.g.:
39```sh
40python postprocess-plot.py petsc-bpsraw-bp1-*-output.txt
41```
42The plot ranges and some other options can be adjusted by editing the values
43in the beginning of the script `postprocess-plot.py`.
44
45Note that the `postprocess-*.py` scripts can read multiple files at a time just
46by listing them on the command line and also read the standard input if no files
47were specified on the command line.
48