xref: /libCEED/benchmarks/README.md (revision cb32e2e7f026784d97a57f1901677e9727def907)
1288c0443SJeremy L Thompson# libCEED: Benchmarks
22f4d9adbSJeremy L Thompson
32f4d9adbSJeremy L ThompsonThis directory contains benchmark problems for performance evaluation of libCEED
42f4d9adbSJeremy L Thompsonbackends.
52f4d9adbSJeremy L Thompson
62f4d9adbSJeremy L Thompson## Running the Benchmarks
72f4d9adbSJeremy L Thompson
82f4d9adbSJeremy L ThompsonExample:
92f4d9adbSJeremy L Thompson```sh
10*cb32e2e7SValeria Barrabenchmark.sh -c /cpu/self -r petsc-bpsraw.sh -b bp1 -n 16 -p 16
112f4d9adbSJeremy L Thompson```
122f4d9adbSJeremy L Thompsonwhere the option `-c <specs-list>` specifies a list of libCEED specs to
138c91a0c9SJeremy L Thompsonbenchmark, `-b <bp-list>` specifies a list of CEED benchmark problems to run,
1459d7a4ceSjeremylt`-n 16` is the total number of processors and `-p 16` is the number
152f4d9adbSJeremy L Thompsonof processors per node.
162f4d9adbSJeremy L Thompson
1759d7a4ceSjeremyltMultiple backends, benchmark problems, and processor configurations can be
1859d7a4ceSjeremyltbenchmarked with:
192f4d9adbSJeremy L Thompson```sh
20*cb32e2e7SValeria Barrabenchmark.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"
212f4d9adbSJeremy L Thompson```
222f4d9adbSJeremy L Thompson
232f4d9adbSJeremy L ThompsonThe results from the benchmarks are written to files named `*-output.txt`.
242f4d9adbSJeremy L Thompson
252f4d9adbSJeremy L ThompsonFor a short help message, use the option `-h`.
262f4d9adbSJeremy L Thompson
27*cb32e2e7SValeria BarraWhen running the tests `petsc-bpsraw.sh`, the following
282f4d9adbSJeremy L Thompsonvariables can be set on the command line:
292f4d9adbSJeremy L Thompson* `max_dofs_node=<number>`, e.g. `max_dofs_node=1000000` - this sets the upper
302f4d9adbSJeremy L Thompson  bound of the problem sizes, per compute node; the default value is 3*2^20.
312f4d9adbSJeremy L Thompson* `max_p=<number>`, e.g. `max_p=12` - this sets the highest degree for which the
322f4d9adbSJeremy L Thompson  tests will be run (the lowest degree is 1); the default value is 8.
332f4d9adbSJeremy L Thompson
342f4d9adbSJeremy L Thompson## Post-processing the results
352f4d9adbSJeremy L Thompson
362f4d9adbSJeremy L ThompsonAfter generating the results, use the `postprocess-plot.py` script (which
372f4d9adbSJeremy L Thompsonrequires the python package matplotlib) or the `postprocess-table.py` script,
382f4d9adbSJeremy L Thompsone.g.:
392f4d9adbSJeremy L Thompson```sh
40*cb32e2e7SValeria Barrapython postprocess-plot.py petsc-bpsraw-bp1-*-output.txt
412f4d9adbSJeremy L Thompson```
422f4d9adbSJeremy L ThompsonThe plot ranges and some other options can be adjusted by editing the values
432f4d9adbSJeremy L Thompsonin the beginning of the script `postprocess-plot.py`.
442f4d9adbSJeremy L Thompson
452f4d9adbSJeremy L ThompsonNote that the `postprocess-*.py` scripts can read multiple files at a time just
462f4d9adbSJeremy L Thompsonby listing them on the command line and also read the standard input if no files
472f4d9adbSJeremy L Thompsonwere specified on the command line.
48