simplify openmp thread limit handling
This commit is contained in:
parent
7976deff80
commit
ea669c8ae9
|
@ -136,15 +136,13 @@ typedef struct blas_queue {
|
||||||
#ifdef SMP_SERVER
|
#ifdef SMP_SERVER
|
||||||
|
|
||||||
extern int blas_server_avail;
|
extern int blas_server_avail;
|
||||||
|
extern int blas_omp_number_max;
|
||||||
|
|
||||||
static __inline int num_cpu_avail(int level) {
|
static __inline int num_cpu_avail(int level) {
|
||||||
|
|
||||||
#ifdef USE_OPENMP
|
#ifdef USE_OPENMP
|
||||||
int openmp_nthreads;
|
int openmp_nthreads;
|
||||||
if (blas_num_threads_set == 0)
|
|
||||||
openmp_nthreads=omp_get_max_threads();
|
openmp_nthreads=omp_get_max_threads();
|
||||||
else
|
|
||||||
openmp_nthreads=blas_cpu_number;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef USE_OPENMP
|
#ifndef USE_OPENMP
|
||||||
|
@ -156,7 +154,13 @@ int openmp_nthreads;
|
||||||
) return 1;
|
) return 1;
|
||||||
|
|
||||||
#ifdef USE_OPENMP
|
#ifdef USE_OPENMP
|
||||||
if (blas_cpu_number != openmp_nthreads) {
|
if (openmp_nthreads > blas_omp_number_max){
|
||||||
|
#ifdef DEBUG
|
||||||
|
fprintf(stderr,"WARNING - more OpenMP threads requested (%d) than available (%d)\n",openmp_nthreads,blas_omp_number_max);
|
||||||
|
#endif
|
||||||
|
openmp_nthreads = blas_omp_number_max;
|
||||||
|
}
|
||||||
|
if (blas_cpu_number != openmp_nthreads) {
|
||||||
goto_set_num_threads(openmp_nthreads);
|
goto_set_num_threads(openmp_nthreads);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue