OpenBLAS checks the following environment variables on startup: * `OPENBLAS_NUM_THREADS`: the number of threads to use (for non-OpenMP builds of OpenBLAS) * `OMP_NUM_THREADS`: the number of threads to use (for OpenMP builds - note that setting this may also affect any other OpenMP code) * `OPENBLAS_DEFAULT_NUM_THREADS`: the number of threads to use, irrespective if OpenBLAS was built for OpenMP or pthreads * `OPENBLAS_MAIN_FREE=1`: this can be used to disable automatic assignment of cpu affinity in OpenBLAS builds that have it enabled by default * `OPENBLAS_THREAD_TIMEOUT`: this can be used to define the length of time that idle threads should wait before exiting * `OMP_ADAPTIVE=1`: this can be used in OpenMP builds to actually remove any surplus threads when the number of threads is decreased `DYNAMIC_ARCH` builds also accept the following: * `OPENBLAS_VERBOSE`: - set this to `1` to enable a warning when there is no exact match for the detected cpu in the library - set this to `2` to make OpenBLAS print the name of the cpu target it autodetected * `OPENBLAS_CORETYPE`: set this to one of the supported target names to override autodetection, e.g., `OPENBLAS_CORETYPE=HASWELL` * `OPENBLAS_L2_SIZE`: set this to override the autodetected size of the L2 cache where it is not reported correctly (in virtual environments) Deprecated variables still recognized for compatibilty: * `GOTO_NUM_THREADS`: equivalent to `OPENBLAS_NUM_THREADS` * `GOTOBLAS_MAIN_FREE`: equivalent to `OPENBLAS_MAIN_FREE` * `OPENBLAS_BLOCK_FACTOR`: this applies a scale factor to the GEMM "P" parameter of the block matrix code, see file `driver/others/parameter.c`