Merge branch 'release-2018' into master
authorAleksei Iupinov <a.yupinov@gmail.com>
Wed, 17 Jan 2018 12:29:47 +0000 (13:29 +0100)
committerAleksei Iupinov <a.yupinov@gmail.com>
Wed, 17 Jan 2018 12:29:47 +0000 (13:29 +0100)
Change-Id: I101621e6fca6729cc42cd7eb6678c1471ccf6ef2

cmake/gmxVersionInfo.cmake
src/gromacs/ewald/pme-only.cpp
src/gromacs/gmxpreprocess/readir.cpp
src/gromacs/mdlib/forcerec.cpp
src/programs/mdrun/mdrun.cpp
src/programs/mdrun/runner.cpp

index 023a89ae87c11a10105b6942d348988abced3470..e8f344487bb1efa5756ce612c2b756f9bd004053 100644 (file)
 # The GROMACS convention is that these are the version number of the next
 # release that is going to be made from this branch.
 set(GMX_VERSION_MAJOR 2018)
-set(GMX_VERSION_PATCH 0)
+set(GMX_VERSION_PATCH 1)
 # The suffix, on the other hand, is used mainly for betas and release
 # candidates, where it signifies the most recent such release from
 # this branch; it will be empty before the first such release, as well
index 51807c72f83678afee02b3df53f7c9ede466e23b..509744d934654e85f8ea806adf792cb27e9a012b 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2016,2017, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -158,7 +158,8 @@ static std::unique_ptr<gmx_pme_pp> gmx_pme_pp_init(t_commrec *cr)
 static void reset_pmeonly_counters(gmx_wallcycle_t wcycle,
                                    gmx_walltime_accounting_t walltime_accounting,
                                    t_nrnb *nrnb, t_inputrec *ir,
-                                   gmx_int64_t step)
+                                   gmx_int64_t step,
+                                   bool useGpuForPme)
 {
     /* Reset all the counters related to performance over the run */
     wallcycle_stop(wcycle, ewcRUN);
@@ -172,6 +173,11 @@ static void reset_pmeonly_counters(gmx_wallcycle_t wcycle,
     ir->init_step = step;
     wallcycle_start(wcycle, ewcRUN);
     walltime_accounting_start(walltime_accounting);
+
+    if (useGpuForPme)
+    {
+        resetGpuProfiler();
+    }
 }
 
 static gmx_pme_t *gmx_pmeonly_switch(std::vector<gmx_pme_t *> *pmedata,
@@ -596,7 +602,7 @@ int gmx_pmeonly(struct gmx_pme_t *pme,
             if (ret == pmerecvqxRESETCOUNTERS)
             {
                 /* Reset the cycle and flop counters */
-                reset_pmeonly_counters(wcycle, walltime_accounting, mynrnb, ir, step);
+                reset_pmeonly_counters(wcycle, walltime_accounting, mynrnb, ir, step, useGpuForPme);
             }
         }
         while (ret == pmerecvqxSWITCHGRID || ret == pmerecvqxRESETCOUNTERS);
index f89c0096472edb48fb7bbf3b9b062a70921f0094..eab0056b1077520b863530be1661866f0e63e43b 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2016,2017, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -905,9 +905,10 @@ void check_ir(const char *mdparin, t_inputrec *ir, t_gromppopts *opts,
         }
     }
 
-    if (EI_STATE_VELOCITY(ir->eI) && ir->ePBC == epbcNONE && ir->comm_mode != ecmANGULAR)
+    if (EI_STATE_VELOCITY(ir->eI) && !EI_SD(ir->eI) && ir->ePBC == epbcNONE && ir->comm_mode != ecmANGULAR)
     {
-        warning_note(wi, "Tumbling and or flying ice-cubes: We are not removing rotation around center of mass in a non-periodic system. You should probably set comm_mode = ANGULAR.");
+        sprintf(warn_buf, "Tumbling and flying ice-cubes: We are not removing rotation around center of mass in a non-periodic system. You should probably set comm_mode = ANGULAR or use integrator = %s.", ei_names[eiSD1]);
+        warning_note(wi, warn_buf);
     }
 
     /* TEMPERATURE COUPLING */
index fee2ea43239718dd7df21173c1b795dba011c5fb..abd5eb7c3361321073e1e838ec5f3f91f3c56dc9 100644 (file)
@@ -2245,13 +2245,22 @@ static void init_nb_verlet(const gmx::MDLogger     &mdlog,
     }
 
     snew(nbv->nbat, 1);
+    int mimimumNumEnergyGroupNonbonded = ir->opts.ngener;
+    if (ir->opts.ngener - ir->nwall == 1)
+    {
+        /* We have only one non-wall energy group, we do not need energy group
+         * support in the non-bondeds kernels, since all non-bonded energy
+         * contributions go to the first element of the energy group matrix.
+         */
+        mimimumNumEnergyGroupNonbonded = 1;
+    }
     bool bSimpleList = nbnxn_kernel_pairlist_simple(nbv->grp[0].kernel_type);
     nbnxn_atomdata_init(mdlog,
                         nbv->nbat,
                         nbv->grp[0].kernel_type,
                         enbnxninitcombrule,
                         fr->ntype, fr->nbfp,
-                        ir->opts.ngener,
+                        mimimumNumEnergyGroupNonbonded,
                         bSimpleList ? gmx_omp_nthreads_get(emntNonbonded) : 1,
                         nb_alloc, nb_free);
 
index 6d592235aba2a2f3a14dce202e84db66cfbd7ccd..772aabda3833f87e24f6b67a76891308ec3c7ac9 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2011,2012,2013,2014,2015,2016,2017, by the GROMACS development team, led by
+ * Copyright (c) 2011,2012,2013,2014,2015,2016,2017,2018, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -458,7 +458,7 @@ int Mdrunner::mainFunction(int argc, char *argv[])
 
     if (replExParams.exchangeInterval != 0 && nmultisim < 2)
     {
-        gmx_fatal(FARGS, "Need at least two replicas for replica exchange (option -multi)");
+        gmx_fatal(FARGS, "Need at least two replicas for replica exchange (option -multidir)");
     }
 
     if (replExParams.numExchanges < 0)
index 5decaf5499962f48e5c7fafd5b35a832924dac56..b84e5e4df795607744998c2a28caa3f94c0f157d 100644 (file)
@@ -325,7 +325,7 @@ static bool gpuAccelerationOfNonbondedIsUseful(const MDLogger   &mdlog,
                                                const t_inputrec *ir,
                                                bool              issueWarning)
 {
-    if (ir->opts.ngener > 1)
+    if (ir->opts.ngener - ir->nwall > 1)
     {
         /* The GPU code does not support more than one energy group.
          * If the user requested GPUs explicitly, a fatal error is given later.
@@ -913,7 +913,7 @@ int Mdrunner::mdrunner()
 
     /* Initialize per-physical-node MPI process/thread ID and counters. */
     gmx_init_intranode_counters(cr);
-    if (opt2bSet("-multi", nfile, fnm))
+    if (cr->ms && cr->ms->nsim > 1 && !opt2bSet("-multidir", nfile, fnm))
     {
         GMX_LOG(mdlog.info).asParagraph().
             appendText("The -multi flag is deprecated, and may be removed in a future version. Please "