Skip to content

Commit

Permalink
Add OPENBLAS_DEFAULT_NUM_THREADS
Browse files Browse the repository at this point in the history
This allows Julia to set a default number of threads (usually `1`) to be
used when no other thread counts are specified [0], to short-circuit the
default OpenBLAS thread initialization routine that spins up a different
number of threads than Julia would otherwise choose.

The reason to add a new environment variable is that we want to be able
to configure OpenBLAS to avoid performing its initial memory
allocation/thread startup, as that can consume significant amounts of
memory, but we still want to be sensitive to legacy codebases that set
things like `OMP_NUM_THREADS` or `GOTOBLAS_NUM_THREADS`.  Creating a new
environment variable that is openblas-specific and is not already
publicly used to control the overall number of threads of programs like
Julia seems to be the best way forward.

[0] JuliaLang/julia#46844
  • Loading branch information
staticfloat committed Sep 22, 2022
1 parent 667d0e0 commit 9157b1d
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions driver/others/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -823,6 +823,8 @@ void gotoblas_affinity_init(void) {

if (numprocs == 0) numprocs = readenv_atoi("OMP_NUM_THREADS");

if (numprocs == 0) numprocs = readenv_atoi("OPENBLAS_DEFAULT_NUM_THREADS");

numnodes = 1;

if (numprocs == 1) {
Expand Down

0 comments on commit 9157b1d

Please sign in to comment.