Add lower threshold for multithreading
authorMartin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Thu, 1 Jul 2021 15:41:05 +0000 (17:41 +0200)
committerGitHub <noreply@github.com>
Thu, 1 Jul 2021 15:41:05 +0000 (17:41 +0200)
interface/lapack/getrf.c
interface/lapack/zgetrf.c

index 02bb124..323370e 100644 (file)
@@ -95,7 +95,14 @@ int NAME(blasint *M, blasint *N, FLOAT *a, blasint *ldA, blasint *ipiv, blasint
 
 #ifdef SMP
   args.common = NULL;
-  args.nthreads = num_cpu_avail(4);
+#ifndef DOUBLE
+  if (args.m*args.n < 40000)
+#else
+  if (args.m*args.n < 10000)
+#endif
+       args.nthreads=1;
+  else
+       args.nthreads = num_cpu_avail(4);
 
   if (args.nthreads == 1) {
 #endif
index 7f8db94..d03541f 100644 (file)
@@ -95,7 +95,10 @@ int NAME(blasint *M, blasint *N, FLOAT *a, blasint *ldA, blasint *ipiv, blasint
 
 #ifdef SMP
   args.common = NULL;
-  args.nthreads = num_cpu_avail(4);
+  if (args.m*args.n <10000)
+       args.nthreads = 1;
+  else
+       args.nthreads = num_cpu_avail(4);
 
   if (args.nthreads == 1) {
 #endif