Avoid confusing message at end of non-dynamical runs
authorMark Abraham <mark.j.abraham@gmail.com>
Tue, 12 Dec 2017 09:35:38 +0000 (20:35 +1100)
committerErik Lindahl <erik.lindahl@gmail.com>
Thu, 14 Dec 2017 15:25:29 +0000 (16:25 +0100)
EM, TPI, NM, etc. are not targets for performance optimization
so we will not write performance reports. This commit fixes
and oversight whereby we would warn a user when the lack of
performance report is normal and expected.

Fixes #2172

Change-Id: I1097304d79701be748612510572382729f7f26be

src/gromacs/mdlib/sim_util.cpp

index 4973896b2c3efd2d5eada84210a6b2b444b12a5a..7c71829401c803004a47432df9b579b7c351d196 100644 (file)
@@ -2582,10 +2582,14 @@ void finish_run(FILE *fplog, t_commrec *cr,
        communication deadlocks, we always do the communication for the
        report, even if we've decided not to write the report, because
        how long it takes to finish the run is not important when we've
-       decided not to report on the simulation performance. */
-    bool    printReport = SIMMASTER(cr);
+       decided not to report on the simulation performance.
 
-    if (!walltime_accounting_get_valid_finish(walltime_accounting))
+       Further, we only report performance for dynamical integrators,
+       because those are the only ones for which we plan to
+       consider doing any optimizations. */
+    bool printReport = EI_DYNAMICS(inputrec->eI) && SIMMASTER(cr);
+
+    if (printReport && !walltime_accounting_get_valid_finish(walltime_accounting))
     {
         md_print_warn(cr, fplog,
                       "Simulation ended prematurely, no performance report will be written.");