diff --git a/interface/ger.c b/interface/ger.c index 2d19e3bc0..b2f803dec 100644 --- a/interface/ger.c +++ b/interface/ger.c @@ -174,8 +174,11 @@ void CNAME(enum CBLAS_ORDER order, STACK_ALLOC(m, FLOAT, buffer); #ifdef SMPTEST - nthreads = num_cpu_avail(2); - + // Threshold chosen so that speed-up is > 1 on a Xeon E5-2630 + if(1L * m * n > 24L * GEMM_MULTITHREAD_THRESHOLD) + nthreads = num_cpu_avail(2); + else + nthreads = 1; if (nthreads == 1) { #endif diff --git a/interface/zger.c b/interface/zger.c index f46a462e2..5bcbfc09b 100644 --- a/interface/zger.c +++ b/interface/zger.c @@ -213,7 +213,11 @@ void CNAME(enum CBLAS_ORDER order, buffer = (FLOAT *)blas_memory_alloc(1); #ifdef SMPTEST - nthreads = num_cpu_avail(2); + // Threshold chosen so that speed-up is > 1 on a Xeon E5-2630 + if(1L * m * n > 3L * sizeof(FLOAT) * GEMM_MULTITHREAD_THRESHOLD) + nthreads = num_cpu_avail(2); + else + nthreads = 1; if (nthreads == 1) { #endif