From 5be3b48f4975176e260b0ccd0effa83c46be1698 Mon Sep 17 00:00:00 2001 From: carlocamilloni <carlo.camilloni@gmail.com> Date: Wed, 5 Dec 2018 23:59:51 +0100 Subject: [PATCH] Fix an OpenMP performace regression for Coordination and all multicolvar --- src/colvar/CoordinationBase.cpp | 5 +---- src/vesselbase/ActionWithVessel.cpp | 8 +------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/colvar/CoordinationBase.cpp b/src/colvar/CoordinationBase.cpp index 22cfc6701..75040505a 100644 --- a/src/colvar/CoordinationBase.cpp +++ b/src/colvar/CoordinationBase.cpp @@ -151,11 +151,8 @@ void CoordinationBase::calculate() } unsigned nt=OpenMP::getNumThreads(); - const unsigned nn=nl->size(); - - if(nt*stride*10>nn) nt=nn/stride/10; - if(nt==0)nt=1; + if(nt*stride*10>nn) nt=1; #pragma omp parallel num_threads(nt) { diff --git a/src/vesselbase/ActionWithVessel.cpp b/src/vesselbase/ActionWithVessel.cpp index dc56121e6..ea5063467 100644 --- a/src/vesselbase/ActionWithVessel.cpp +++ b/src/vesselbase/ActionWithVessel.cpp @@ -265,8 +265,7 @@ void ActionWithVessel::runAllTasks() { // Get number of threads for OpenMP unsigned nt=OpenMP::getNumThreads(); - if( nt*stride*10>nactive_tasks ) nt=nactive_tasks/stride/10; - if( nt==0 || !threadSafe() ) nt=1; + if( nt*stride*10>nactive_tasks || !threadSafe()) nt=1; // Get size for buffer unsigned bsize=0, bufsize=getSizeOfBuffer( bsize ); @@ -274,11 +273,6 @@ void ActionWithVessel::runAllTasks() { buffer.assign( buffer.size(), 0.0 ); // Switch off calculation of derivatives in main loop if( dertime_can_be_off ) dertime=false; - // std::vector<unsigned> der_list; - // if( mydata ) der_list.resize( mydata->getSizeOfDerivativeList(), 0 ); - - // Build storage stuff for loop - // std::vector<double> buffer( bufsize, 0.0 ); if(timers) stopwatch.start("2 Loop over tasks"); #pragma omp parallel num_threads(nt) -- GitLab