#include "typedefs.h"
#include "gmxcomplex.h"
#include "gmx_wallcycle.h"
+#include "sim_util.h"
#ifdef __cplusplus
extern "C" {
int gmx_pmeonly(gmx_pme_t pme,
t_commrec *cr, t_nrnb *mynrnb,
gmx_wallcycle_t wcycle,
+ gmx_runtime_t *runtime,
real ewaldcoeff, gmx_bool bGatherOnly,
t_inputrec *ir);
/* Called on the nodes that do PME exclusively (as slaves)
else
{
/* do PME only */
- gmx_pmeonly(*pmedata, cr, nrnb, wcycle, ewaldcoeff, FALSE, inputrec);
+ gmx_pmeonly(*pmedata, cr, nrnb, wcycle, &runtime, ewaldcoeff, FALSE, inputrec);
}
if (EI_DYNAMICS(inputrec->eI) || EI_TPI(inputrec->eI))
#include "gmx_cyclecounter.h"
#include "gmx_omp.h"
-
/* Include the SIMD macro file and then check for support */
#include "gmx_simd_macros.h"
#if defined GMX_HAVE_SIMD_MACROS && defined GMX_SIMD_HAVE_EXP
static void reset_pmeonly_counters(t_commrec *cr, gmx_wallcycle_t wcycle,
+ gmx_runtime_t *runtime,
t_nrnb *nrnb, t_inputrec *ir,
gmx_large_int_t step)
{
}
ir->init_step = step;
wallcycle_start(wcycle, ewcRUN);
+ runtime_start(runtime);
}
int gmx_pmeonly(gmx_pme_t pme,
t_commrec *cr, t_nrnb *nrnb,
gmx_wallcycle_t wcycle,
+ gmx_runtime_t *runtime,
real ewaldcoeff, gmx_bool bGatherOnly,
t_inputrec *ir)
{
if (ret == pmerecvqxRESETCOUNTERS)
{
/* Reset the cycle and flop counters */
- reset_pmeonly_counters(cr, wcycle, nrnb, ir, step);
+ reset_pmeonly_counters(cr, wcycle, runtime, nrnb, ir, step);
}
}
while (ret == pmerecvqxSWITCHGRID || ret == pmerecvqxRESETCOUNTERS);
if (count == 0)
{
wallcycle_start(wcycle, ewcRUN);
+ runtime_start(runtime);
}
wallcycle_start(wcycle, ewcPMEMESH);
} /***** end of quasi-loop, we stop with the break above */
while (TRUE);
+ runtime_end(runtime);
+
return 0;
}