From 4e629000095779ae8f544ddd4de77633680a3db9 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Wed, 10 Oct 2018 19:57:43 +0000 Subject: [PATCH] core: call omp_set_dynamic() for better CPU usage Similar to 'OMP_DYNAMIC=TRUE'. --- modules/core/src/parallel.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/core/src/parallel.cpp b/modules/core/src/parallel.cpp index f693da4c76..a32f2f178a 100644 --- a/modules/core/src/parallel.cpp +++ b/modules/core/src/parallel.cpp @@ -420,7 +420,16 @@ static int numThreads = -1; #elif defined HAVE_CSTRIPES // nothing for C= #elif defined HAVE_OPENMP -static int numThreadsMax = omp_get_max_threads(); +static inline int _initMaxThreads() +{ + int maxThreads = omp_get_max_threads(); + if (!utils::getConfigurationParameterBool("OPENCV_FOR_OPENMP_DYNAMIC_DISABLE", false)) + { + omp_set_dynamic(maxThreads); + } + return numThreads; +} +static int numThreadsMax = _initMaxThreads(); #elif defined HAVE_GCD // nothing for GCD #elif defined WINRT