blas-microbenchmark1.11.0-dev

Exit status and environment

From the manual of the benchmarks, man blas-microbenchmark

0 when every point was measured and every result written; 1 for an invalid option or size, or when standard output or the -o file could not be written — a table cut short by a full disk must not pass for a complete one; 2 when a result was wrong (see CHECKING RESULTS), in which case nothing is written to the -o file; 77 when --batch-mode asks for a call the library does not have, or one it would crash on (see --batch-mode), or the routine is an extension the library does not have (axpby, gemmt, sbgemm), which is said on standard error: nothing is measured (77 is what make check's test driver takes for a test skipped).

The thread-count variables the library reads, in the order it reads them:

OPENBLAS_NUM_THREADS, GOTO_NUM_THREADS, OMP_NUM_THREADS
BLIS_NUM_THREADS, OMP_NUM_THREADS
OMP_NUM_THREADS
MKL_NUM_THREADS, OMP_NUM_THREADS. The count is set for MKL's BLAS domain, which overrides MKL_DOMAIN_NUM_THREADS; a warning says so when it is set. MKL_DYNAMIC=false makes MKL use them all on a small problem too (THREADS).
those of the library it loaded, as above; none for Netlib.

FLEXIBLAS picks the library a build against FlexiBLAS loads, by the name flexiblas list gives it:

FLEXIBLAS=OPENBLAS-OPENMP bmb_dgemm -m 512:2048 -o openblas.json
FLEXIBLAS=BLIS-OPENMP bmb_dgemm -m 512:2048 -o blis.json

The results name the library loaded: backend flexiblas/openblas-openmp, and FlexiBLAS's version with the library's name.

OMP_PROC_BIND and OMP_PLACES pin the threads of the OpenMP-threaded libraries.

The results record these variables, and the others that change what the library does, when they are set (OUTPUT).

NO_COLOR, when set and not empty, turns off the colours of warnings and errors, which are only used on a terminal anyway.

/usr/local/libexec/blas-microbenchmark/level1
/usr/local/libexec/blas-microbenchmark/level2
/usr/local/libexec/blas-microbenchmark/level3
The benchmarks, grouped by BLAS level rather than put on the PATH. To run them by name:

BMB=/usr/local/libexec/blas-microbenchmark
export PATH="$BMB/level1:$BMB/level2:$BMB/level3:$PATH"
/usr/local/share/blas-microbenchmark/reframe
ReFrame tests of the benchmarks, for a site's test suite: one per routine, its result checked (--verify), its GFLOP/s and GB/s as performance variables, the site's references read from a JSON file. The README there says how to set the sizes, the threads and the references; see EXAMPLES.