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