From fb5d13e37b0c4248cf7aec13ee219eb6e581330d Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Tue, 7 Jul 2020 15:30:29 +0200 Subject: [PATCH] Handle misleading thread count when OMP_PLACES=threads --- common_thread.h | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/common_thread.h b/common_thread.h index 6ec40e096..d0366cb90 100644 --- a/common_thread.h +++ b/common_thread.h @@ -135,12 +135,13 @@ static __inline int num_cpu_avail(int level) { int openmp_nthreads=0; #endif - if (blas_cpu_number == 1 - -#ifdef USE_OPENMP - || omp_in_parallel() -#endif - ) return 1; +#ifndef USE_OPENMP + if ( blas_cpu_number == 1 ) +#else + if ( omp_in_parallel() || + (blas_cpu_number == 1 && !openblas_env_omp_places_threads) ) +#endif + return 1; #ifdef USE_OPENMP openmp_nthreads=omp_get_max_threads();