|
|
@@ -39,6 +39,11 @@ |
|
|
|
#ifndef COMMON_THREAD |
|
|
|
#define COMMON_THREAD |
|
|
|
|
|
|
|
#ifdef USE_OPENMP |
|
|
|
#include <omp.h> |
|
|
|
extern void goto_set_num_threads(int nthreads); |
|
|
|
#endif |
|
|
|
|
|
|
|
/* Basic Thread Debugging */ |
|
|
|
#undef SMP_DEBUG |
|
|
|
|
|
|
@@ -126,6 +131,10 @@ extern int blas_server_avail; |
|
|
|
|
|
|
|
static __inline int num_cpu_avail(int level) { |
|
|
|
|
|
|
|
#ifdef USE_OPENMP |
|
|
|
int openmp_nthreads=0; |
|
|
|
#endif |
|
|
|
|
|
|
|
if ((blas_cpu_number == 1) |
|
|
|
|
|
|
|
#ifdef USE_OPENMP |
|
|
@@ -133,6 +142,13 @@ static __inline int num_cpu_avail(int level) { |
|
|
|
#endif |
|
|
|
) return 1; |
|
|
|
|
|
|
|
#ifdef USE_OPENMP |
|
|
|
openmp_nthreads=omp_get_max_threads(); |
|
|
|
if (blas_cpu_number != openmp_nthreads) { |
|
|
|
goto_set_num_threads(openmp_nthreads); |
|
|
|
} |
|
|
|
#endif |
|
|
|
|
|
|
|
return blas_cpu_number; |
|
|
|
|
|
|
|
} |
|
|
|