From 7a07b343aa9d1a5539eef656e1ce36f07ddbaa65 Mon Sep 17 00:00:00 2001 From: carlocamilloni <carlo.camilloni@gmail.com> Date: Mon, 5 Feb 2018 23:56:50 +0100 Subject: [PATCH] cs2back: mpi+openmp --- src/isdb/CS2Backbone.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/isdb/CS2Backbone.cpp b/src/isdb/CS2Backbone.cpp index 9f93ad000..a87952324 100644 --- a/src/isdb/CS2Backbone.cpp +++ b/src/isdb/CS2Backbone.cpp @@ -978,7 +978,12 @@ void CS2Backbone::calculate() double score = 0.; + unsigned nt=OpenMP::getNumThreads(); + if(nt*stride*10>chemicalshifts.size()) nt=chemicalshifts.size()/stride/10; + if(nt==0) nt=1; + // a single loop over all chemical shifts + #pragma omp parallel for reduction(+:score) num_threads(nt) for(unsigned cs=rank; cs<chemicalshifts.size(); cs+=stride) { const unsigned kdx=cs*max_cs_atoms; const ChemicalShift *myfrag = &chemicalshifts[cs]; @@ -1302,6 +1307,7 @@ void CS2Backbone::calculate() /* Metainference */ if(getDoScore()) { score = getScore(); + #pragma omp parallel for num_threads(nt) for(unsigned cs=rank; cs<chemicalshifts.size(); cs+=stride) { const unsigned kdx=cs*max_cs_atoms; const double fact = getMetaDer(cs); @@ -1343,7 +1349,6 @@ void CS2Backbone::calculate() void CS2Backbone::update_neighb() { max_cs_atoms=0; // cycle over chemical shifts - #pragma omp parallel for num_threads(OpenMP::getNumThreads()) for(unsigned cs=0; cs<chemicalshifts.size(); cs++) { const unsigned boxsize = getNumberOfAtoms(); chemicalshifts[cs].box_nb.clear(); -- GitLab