Add note about correct calling of wallcycle counter
authorMark Abraham <mark.j.abraham@gmail.com>
Fri, 16 May 2014 11:05:27 +0000 (13:05 +0200)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Tue, 20 May 2014 08:12:38 +0000 (10:12 +0200)
The code could be refactored to use a series of explicit OpenMP
barriers so that the wallcycle_start/stop are more clearly matched,
but that's too hard for now. The comments make it harder for anyone
to misunderstand or mistakenly change the code.

Change-Id: Iec00e50e26a60efe09afb6f5744d401a9d9c06a3

src/gromacs/mdlib/pme.c

index 5d0893b23a9d7c79ae5763b4bdbd1c252b685841..af339e7ec8b03e009e648c96fd11d9cdd8b55e42 100644 (file)
@@ -4946,6 +4946,9 @@ int gmx_pme_do(gmx_pme_t pme,
                         inc_nrnb(nrnb, eNR_FFT, 2*npme);
                     }
 
+                    /* Note: this wallcycle region is closed below
+                       outside an OpenMP region, so take care if
+                       refactoring code here. */
                     wallcycle_start(wcycle, ewcPME_SPREADGATHER);
                 }
 
@@ -4991,6 +4994,8 @@ int gmx_pme_do(gmx_pme_t pme,
 
             inc_nrnb(nrnb, eNR_GATHERFBSP,
                      pme->pme_order*pme->pme_order*pme->pme_order*pme->atc[0].n);
+            /* Note: this wallcycle region is opened above inside an OpenMP
+               region, so take care if refactoring code here. */
             wallcycle_stop(wcycle, ewcPME_SPREADGATHER);
         }