Once #228 is merged, when OpenBLAS is compiled with OpenMP, OpenMP APIs are used to set the number of threads, since that has the desirable thread-local scope.
On Windows, however, the behavior of omp_set_num_threads() is still process-wide, not the desired thread-local scope. So the tests to ensure thread-local behavior don't currently run on Windows.
It's likely that this deficiency is solved by compiling with the /openmp:llvm flag. This flag is documented as experimental (as of September 2026), so it's not clear if it's being used in the real world.
But if it is discovered to be used in the real world, the tests can be updated to run on Windows as well if it can be detected somehow (specific OpenMP symbols? An OpenMP introspection API?) that OpenBLAS was compiled with this flag.
Once #228 is merged, when OpenBLAS is compiled with OpenMP, OpenMP APIs are used to set the number of threads, since that has the desirable thread-local scope.
On Windows, however, the behavior of
omp_set_num_threads()is still process-wide, not the desired thread-local scope. So the tests to ensure thread-local behavior don't currently run on Windows.It's likely that this deficiency is solved by compiling with the
/openmp:llvmflag. This flag is documented as experimental (as of September 2026), so it's not clear if it's being used in the real world.But if it is discovered to be used in the real world, the tests can be updated to run on Windows as well if it can be detected somehow (specific OpenMP symbols? An OpenMP introspection API?) that OpenBLAS was compiled with this flag.