From e55237c505750ff4793c818d57429aaabc23f277 Mon Sep 17 00:00:00 2001 From: Anirudh Subramanian Date: Mon, 3 Dec 2018 13:50:12 -0800 Subject: [PATCH] Revert "Manually track num_max_thread (#12380)" (#13501) This reverts commit 75410210e07a5fab5e044348aee276d578d5857e. --- src/engine/openmp.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/engine/openmp.cc b/src/engine/openmp.cc index 64899b09660e..8fe3939892d2 100644 --- a/src/engine/openmp.cc +++ b/src/engine/openmp.cc @@ -73,14 +73,18 @@ void OpenMP::set_reserve_cores(int cores) { CHECK_GE(cores, 0); reserve_cores_ = cores; #ifdef _OPENMP - omp_thread_max_ = std::max(omp_thread_max_ - reserve_cores_, 1); + if (reserve_cores_ >= omp_thread_max_) { + omp_set_num_threads(1); + } else { + omp_set_num_threads(omp_thread_max_ - reserve_cores_); + } #endif } int OpenMP::GetRecommendedOMPThreadCount(bool exclude_reserved) const { #ifdef _OPENMP if (omp_num_threads_set_in_environment_) { - return omp_thread_max_; + return omp_get_max_threads(); } if (enabled_) { int thread_count = omp_get_max_threads(); @@ -97,8 +101,10 @@ int OpenMP::GetRecommendedOMPThreadCount(bool exclude_reserved) const { } return omp_thread_max_; } -#endif return 1; +#else + return 1; +#endif } OpenMP *__init_omp__ = OpenMP::Get();