DragonFly On-Line Manual Pages
gmx-tune_pme(1) GROMACS Manual gmx-tune_pme(1)
NAME
gmx-tune_pme - Time mdrun as a function of PME ranks to optimize
settings
SYNOPSIS
gmx tune_pme [-p [<.out>]] [-err [<.log>]] [-so [<.tpr/.tpb/...>]]
[-s [<.tpr/.tpb/...>]] [-o [<.trr/.cpt/...>]]
[-x [<.xtc/.tng>]] [-cpi [<.cpt>]] [-cpo [<.cpt>]]
[-c [<.gro/.g96/...>]] [-e [<.edr>]] [-g [<.log>]]
[-dhdl [<.xvg>]] [-field [<.xvg>]] [-table [<.xvg>]]
[-tabletf [<.xvg>]] [-tablep [<.xvg>]]
[-tableb [<.xvg>]] [-rerun [<.xtc/.trr/...>]]
[-tpi [<.xvg>]] [-tpid [<.xvg>]] [-ei [<.edi>]]
[-eo [<.xvg>]] [-devout [<.xvg>]] [-runav [<.xvg>]]
[-px [<.xvg>]] [-pf [<.xvg>]] [-ro [<.xvg>]]
[-ra [<.log>]] [-rs [<.log>]] [-rt [<.log>]]
[-mtx [<.mtx>]] [-dn [<.ndx>]] [-swap [<.xvg>]]
[-bo [<.trr/.cpt/...>]] [-bx [<.xtc>]] [-bcpo [<.cpt>]]
[-bc [<.gro/.g96/...>]] [-be [<.edr>]] [-bg [<.log>]]
[-beo [<.xvg>]] [-bdhdl [<.xvg>]] [-bfield [<.xvg>]]
[-btpi [<.xvg>]] [-btpid [<.xvg>]] [-bdevout [<.xvg>]]
[-brunav [<.xvg>]] [-bpx [<.xvg>]] [-bpf [<.xvg>]]
[-bro [<.xvg>]] [-bra [<.log>]] [-brs [<.log>]]
[-brt [<.log>]] [-bmtx [<.mtx>]] [-bdn [<.ndx>]]
[-bswap [<.xvg>]] [-nice <int>] [-xvg <enum>]
[-np <int>] [-npstring <enum>] [-ntmpi <int>] [-r <int>]
[-max <real>] [-min <real>] [-npme <enum>] [-fix <int>]
[-rmax <real>] [-rmin <real>] [-[no]scalevdw]
[-ntpr <int>] [-steps <int>] [-resetstep <int>]
[-nsteps <int>] [-[no]launch] [-[no]bench] [-[no]check]
[-[no]append] [-[no]cpnum]
DESCRIPTION
For a given number -np or -ntmpi of ranks, gmx tune_pme systematically
times gmx mdrun with various numbers of PME-only ranks and determines
which setting is fastest. It will also test whether performance can be
enhanced by shifting load from the reciprocal to the real space part of
the Ewald sum. Simply pass your .tpr file to gmx tune_pme together with
other options for gmx mdrun as needed.
Which executables are used can be set in the environment variables
MPIRUN and MDRUN. If these are not present, 'mpirun' and 'mdrun' will
be used as defaults. Note that for certain MPI frameworks you need to
provide a machine- or hostfile. This can also be passed via the MPIRUN
variable, e.g.
export MPIRUN="/usr/local/mpirun -machinefile hosts"
Before doing the actual benchmark runs, gmx tune_pme will do a quick
check whether mdrun works as expected with the provided parallel
settings if the -check option is activated (the default). Please call
gmx tune_pme with the normal options you would pass to gmx mdrun and
add -np for the number of ranks to perform the tests on, or -ntmpi for
the number of threads. You can also add -r to repeat each test several
times to get better statistics.
gmx tune_pme can test various real space / reciprocal space workloads
for you. With -ntpr you control how many extra .tpr files will be
written with enlarged cutoffs and smaller Fourier grids respectively.
Typically, the first test (number 0) will be with the settings from the
input .tpr file; the last test (number ntpr) will have the Coulomb
cutoff specified by -rmax with a somewhat smaller PME grid at the same
time. In this last test, the Fourier spacing is multiplied with
rmax/rcoulomb. The remaining .tpr files will have equally-spaced
Coulomb radii (and Fourier spacings) between these extremes. Note that
you can set -ntpr to 1 if you just seek the optimal number of PME-only
ranks; in that case your input .tpr file will remain unchanged.
For the benchmark runs, the default of 1000 time steps should suffice
for most MD systems. The dynamic load balancing needs about 100 time
steps to adapt to local load imbalances, therefore the time step
counters are by default reset after 100 steps. For large systems (1M
atoms), as well as for a higher accuracy of the measurements, you
should set -resetstep to a higher value. From the 'DD' load imbalance
entries in the md.log output file you can tell after how many steps the
load is sufficiently balanced. Example call:
gmx tune_pme -np 64 -s protein.tpr -launch
After calling gmx mdrun several times, detailed performance information
is available in the output file perf.out. Note that during the
benchmarks, a couple of temporary files are written (options -b*),
these will be automatically deleted after each test.
If you want the simulation to be started automatically with the
optimized parameters, use the command line option -launch.
OPTIONS
Options to specify input and output files:
-p [<.out>] (perf.out) (Output)
Generic output file
-err [<.log>] (bencherr.log) (Output)
Log file
-so [<.tpr/.tpb/...>] (tuned.tpr) (Output)
Run input file: tpr tpb tpa
-s [<.tpr/.tpb/...>] (topol.tpr) (Input)
Run input file: tpr tpb tpa
-o [<.trr/.cpt/...>] (traj.trr) (Output)
Full precision trajectory: trr cpt trj tng
-x [<.xtc/.tng>] (traj_comp.xtc) (Output, Optional)
Compressed trajectory (tng format or portable xdr format)
-cpi [<.cpt>] (state.cpt) (Input, Optional)
Checkpoint file
-cpo [<.cpt>] (state.cpt) (Output, Optional)
Checkpoint file
-c [<.gro/.g96/...>] (confout.gro) (Output)
Structure file: gro g96 pdb brk ent esp
-e [<.edr>] (ener.edr) (Output)
Energy file
-g [<.log>] (md.log) (Output)
Log file
-dhdl [<.xvg>] (dhdl.xvg) (Output, Optional)
xvgr/xmgr file
-field [<.xvg>] (field.xvg) (Output, Optional)
xvgr/xmgr file
-table [<.xvg>] (table.xvg) (Input, Optional)
xvgr/xmgr file
-tabletf [<.xvg>] (tabletf.xvg) (Input, Optional)
xvgr/xmgr file
-tablep [<.xvg>] (tablep.xvg) (Input, Optional)
xvgr/xmgr file
-tableb [<.xvg>] (table.xvg) (Input, Optional)
xvgr/xmgr file
-rerun [<.xtc/.trr/...>] (rerun.xtc) (Input, Optional)
Trajectory: xtc trr cpt trj gro g96 pdb tng
-tpi [<.xvg>] (tpi.xvg) (Output, Optional)
xvgr/xmgr file
-tpid [<.xvg>] (tpidist.xvg) (Output, Optional)
xvgr/xmgr file
-ei [<.edi>] (sam.edi) (Input, Optional)
ED sampling input
-eo [<.xvg>] (edsam.xvg) (Output, Optional)
xvgr/xmgr file
-devout [<.xvg>] (deviatie.xvg) (Output, Optional)
xvgr/xmgr file
-runav [<.xvg>] (runaver.xvg) (Output, Optional)
xvgr/xmgr file
-px [<.xvg>] (pullx.xvg) (Output, Optional)
xvgr/xmgr file
-pf [<.xvg>] (pullf.xvg) (Output, Optional)
xvgr/xmgr file
-ro [<.xvg>] (rotation.xvg) (Output, Optional)
xvgr/xmgr file
-ra [<.log>] (rotangles.log) (Output, Optional)
Log file
-rs [<.log>] (rotslabs.log) (Output, Optional)
Log file
-rt [<.log>] (rottorque.log) (Output, Optional)
Log file
-mtx [<.mtx>] (nm.mtx) (Output, Optional)
Hessian matrix
-dn [<.ndx>] (dipole.ndx) (Output, Optional)
Index file
-swap [<.xvg>] (swapions.xvg) (Output, Optional)
xvgr/xmgr file
-bo [<.trr/.cpt/...>] (bench.trr) (Output)
Full precision trajectory: trr cpt trj tng
-bx [<.xtc>] (bench.xtc) (Output)
Compressed trajectory (portable xdr format): xtc
-bcpo [<.cpt>] (bench.cpt) (Output)
Checkpoint file
-bc [<.gro/.g96/...>] (bench.gro) (Output)
Structure file: gro g96 pdb brk ent esp
-be [<.edr>] (bench.edr) (Output)
Energy file
-bg [<.log>] (bench.log) (Output)
Log file
-beo [<.xvg>] (benchedo.xvg) (Output, Optional)
xvgr/xmgr file
-bdhdl [<.xvg>] (benchdhdl.xvg) (Output, Optional)
xvgr/xmgr file
-bfield [<.xvg>] (benchfld.xvg) (Output, Optional)
xvgr/xmgr file
-btpi [<.xvg>] (benchtpi.xvg) (Output, Optional)
xvgr/xmgr file
-btpid [<.xvg>] (benchtpid.xvg) (Output, Optional)
xvgr/xmgr file
-bdevout [<.xvg>] (benchdev.xvg) (Output, Optional)
xvgr/xmgr file
-brunav [<.xvg>] (benchrnav.xvg) (Output, Optional)
xvgr/xmgr file
-bpx [<.xvg>] (benchpx.xvg) (Output, Optional)
xvgr/xmgr file
-bpf [<.xvg>] (benchpf.xvg) (Output, Optional)
xvgr/xmgr file
-bro [<.xvg>] (benchrot.xvg) (Output, Optional)
xvgr/xmgr file
-bra [<.log>] (benchrota.log) (Output, Optional)
Log file
-brs [<.log>] (benchrots.log) (Output, Optional)
Log file
-brt [<.log>] (benchrott.log) (Output, Optional)
Log file
-bmtx [<.mtx>] (benchn.mtx) (Output, Optional)
Hessian matrix
-bdn [<.ndx>] (bench.ndx) (Output, Optional)
Index file
-bswap [<.xvg>] (benchswp.xvg) (Output, Optional)
xvgr/xmgr file
Other options:
-nice <int> (0)
Set the nicelevel
-xvg <enum> (xmgrace)
xvg plot formatting: xmgrace, xmgr, none
-np <int> (1)
Number of ranks to run the tests on (must be 2 for separate PME
ranks)
-npstring <enum> (-np)
Specify the number of ranks to $MPIRUN using this string: -np, -n,
none
-ntmpi <int> (1)
Number of MPI-threads to run the tests on (turns MPI & mpirun off)
-r <int> (2)
Repeat each test this often
-max <real> (0.5)
Max fraction of PME ranks to test with
-min <real> (0.25)
Min fraction of PME ranks to test with
-npme <enum> (auto)
Within -min and -max, benchmark all possible values for -npme, or
just a reasonable subset. Auto neglects -min and -max and chooses
reasonable values around a guess for npme derived from the .tpr: auto,
all, subset
-fix <int> (-2)
If = -1, do not vary the number of PME-only ranks, instead use this
fixed value and only vary rcoulomb and the PME grid spacing.
-rmax <real> (0)
If 0, maximal rcoulomb for -ntpr1 (rcoulomb upscaling results in
fourier grid downscaling)
-rmin <real> (0)
If 0, minimal rcoulomb for -ntpr1
-[no]scalevdw (yes)
Scale rvdw along with rcoulomb
-ntpr <int> (0)
Number of .tpr files to benchmark. Create this many files with
different rcoulomb scaling factors depending on -rmin and -rmax. If 1,
automatically choose the number of .tpr files to test
-steps <int> (1000)
Take timings for this many steps in the benchmark runs
-resetstep <int> (100)
Let dlb equilibrate this many steps before timings are taken (reset
cycle counters after this many steps)
-nsteps <int> (-1)
If non-negative, perform this many steps in the real run
(overwrites nsteps from .tpr, add .cpt steps)
-[no]launch (no)
Launch the real simulation after optimization
-[no]bench (yes)
Run the benchmarks or just create the input .tpr files?
-[no]check (yes)
Before the benchmark runs, check whether mdrun works in parallel
-[no]append (yes)
Append to previous output files when continuing from checkpoint
instead of adding the simulation part number to all file names (for
launch only)
-[no]cpnum (no)
Keep and number checkpoint files (launch only)
SEE ALSO
gromacs(7)
More information about GROMACS is available at
<http://www.gromacs.org/>.
VERSION 5.0.6 gmx-tune_pme(1)