Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help

       gmx-tune_pme  -	Time mdrun as a	function of PME	ranks to optimize set-

	  gmx tune_pme [-s [_.tpr_]] [-cpi [_.cpt_]] [-table [_.xvg_]]
		       [-tablep	[_.xvg_]] [-tableb [_.xvg_]]
		       [-rerun [_.xtc/.trr/..._]] [-ei [_.edi_]] [-p [_.out_]]
		       [-err [_.log_]] [-so [_.tpr_]] [-o [_.trr/.cpt/..._]]
		       [-x [_.xtc/.tng_]] [-cpo	[_.cpt_]]
		       [-c [_.gro/.g96/..._]] [-e [_.edr_]] [-g	[_.log_]]
		       [-dhdl [_.xvg_]]	[-field	[_.xvg_]] [-tpi	[_.xvg_]]
		       [-tpid [_.xvg_]]	[-eo [_.xvg_]] [-px [_.xvg_]]
		       [-pf [_.xvg_]] [-ro [_.xvg_]] [-ra [_.log_]]
		       [-rs [_.log_]] [-rt [_.log_]] [-mtx [_.mtx_]]
		       [-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_]] [-xvg _enum_]
		       [-mdrun _string_] [-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]
		       [-gpu_id	_string_] [-[no]append]	[-[no]cpnum]
		       [-deffnm	_string_]

       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.

       gmx  tune_pme  needs to call gmx	mdrun and so requires that you specify
       how to call mdrun with the argument to the -mdrun parameter.  Depending
       how  you	have built GROMACS, values such	as agmx	mdruna,	agmx_d mdruna,
       or amdrun_mpia might be needed.

       The program that	runs MPI programs can be set in	the environment	 vari-
       able  MPIRUN  (defaults	to ampiruna). Note that	for certain MPI	frame-
       works, 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" Note that in such
       cases it	is normally necessary to compile and/or	run gmx	tune_pme with-
       out MPI support,	so that	it can call the	MPIRUN program.

       Before  doing  the  actual benchmark runs, gmx tune_pme will do a quick
       check whether gmx 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 writ-
       ten with	enlarged cutoffs and smaller Fourier grids respectively.  Typ-
       ically, the first test (number 0) will be with the  settings  from  the
       input .tpr file;	the last test (number ntpr) will have the Coulomb cut-
       off 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 coun-
       ters 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 aDDa 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	bench-
       marks, 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 opti-
       mized parameters, use the command line option -launch.

       Basic support for GPU-enabled mdrun exists. Give	 a  string  containing
       the  IDs	 of  the  GPUs that you	wish to	use in the optimization	in the
       -gpu_id command-line argument. This works exactly like  mdrun  -gpu_id,
       does  not  imply	a mapping, and merely declares the eligible set	of GPU
       devices.	gmx-tune_pme will construct calls to mdrun that	use  this  set
       appropriately. gmx-tune_pme does	not support -gputasks.

       Options to specify input	files:

       -s [<.tpr>] (topol.tpr)
	      Portable xdr run input file

       -cpi [<.cpt>] (state.cpt) (Optional)
	      Checkpoint file

       -table [<.xvg>] (table.xvg) (Optional)
	      xvgr/xmgr	file

       -tablep [<.xvg>]	(tablep.xvg) (Optional)
	      xvgr/xmgr	file

       -tableb [<.xvg>]	(table.xvg) (Optional)
	      xvgr/xmgr	file

       -rerun [<.xtc/.trr/^a|>] (rerun.xtc) (Optional)
	      Trajectory: xtc trr cpt gro g96 pdb tng

       -ei [<.edi>] (sam.edi) (Optional)
	      ED sampling input

       Options to specify output files:

       -p [<.out>] (perf.out)
	      Generic output file

       -err [<.log>] (bencherr.log)
	      Log file

       -so [<.tpr>] (tuned.tpr)
	      Portable xdr run input file

       -o [<.trr/.cpt/^a|>] (traj.trr)
	      Full precision trajectory: trr cpt tng

       -x [<.xtc/.tng>]	(traj_comp.xtc)	(Optional)
	      Compressed trajectory (tng format	or portable xdr	format)

       -cpo [<.cpt>] (state.cpt) (Optional)
	      Checkpoint file

       -c [<.gro/.g96/^a|>] (confout.gro)
	      Structure	file: gro g96 pdb brk ent esp

       -e [<.edr>] (ener.edr)
	      Energy file

       -g [<.log>] (md.log)
	      Log file

       -dhdl [<.xvg>] (dhdl.xvg) (Optional)
	      xvgr/xmgr	file

       -field [<.xvg>] (field.xvg) (Optional)
	      xvgr/xmgr	file

       -tpi [<.xvg>] (tpi.xvg) (Optional)
	      xvgr/xmgr	file

       -tpid [<.xvg>] (tpidist.xvg) (Optional)
	      xvgr/xmgr	file

       -eo [<.xvg>] (edsam.xvg)	(Optional)
	      xvgr/xmgr	file

       -px [<.xvg>] (pullx.xvg)	(Optional)
	      xvgr/xmgr	file

       -pf [<.xvg>] (pullf.xvg)	(Optional)
	      xvgr/xmgr	file

       -ro [<.xvg>] (rotation.xvg) (Optional)
	      xvgr/xmgr	file

       -ra [<.log>] (rotangles.log) (Optional)
	      Log file

       -rs [<.log>] (rotslabs.log) (Optional)
	      Log file

       -rt [<.log>] (rottorque.log) (Optional)
	      Log file

       -mtx [<.mtx>] (nm.mtx) (Optional)
	      Hessian matrix

       -swap [<.xvg>] (swapions.xvg) (Optional)
	      xvgr/xmgr	file

       -bo [<.trr/.cpt/^a|>] (bench.trr)
	      Full precision trajectory: trr cpt tng

       -bx [<.xtc>] (bench.xtc)
	      Compressed trajectory (portable xdr format): xtc

       -bcpo [<.cpt>] (bench.cpt)
	      Checkpoint file

       -bc [<.gro/.g96/^a|>] (bench.gro)
	      Structure	file: gro g96 pdb brk ent esp

       -be [<.edr>] (bench.edr)
	      Energy file

       -bg [<.log>] (bench.log)
	      Log file

       -beo [<.xvg>] (benchedo.xvg) (Optional)
	      xvgr/xmgr	file

       -bdhdl [<.xvg>] (benchdhdl.xvg) (Optional)
	      xvgr/xmgr	file

       -bfield [<.xvg>]	(benchfld.xvg) (Optional)
	      xvgr/xmgr	file

       -btpi [<.xvg>] (benchtpi.xvg) (Optional)
	      xvgr/xmgr	file

       -btpid [<.xvg>] (benchtpid.xvg) (Optional)
	      xvgr/xmgr	file

       -bdevout	[<.xvg>] (benchdev.xvg)	(Optional)
	      xvgr/xmgr	file

       -brunav [<.xvg>]	(benchrnav.xvg)	(Optional)
	      xvgr/xmgr	file

       -bpx [<.xvg>] (benchpx.xvg) (Optional)
	      xvgr/xmgr	file

       -bpf [<.xvg>] (benchpf.xvg) (Optional)
	      xvgr/xmgr	file

       -bro [<.xvg>] (benchrot.xvg) (Optional)
	      xvgr/xmgr	file

       -bra [<.log>] (benchrota.log) (Optional)
	      Log file

       -brs [<.log>] (benchrots.log) (Optional)
	      Log file

       -brt [<.log>] (benchrott.log) (Optional)
	      Log file

       -bmtx [<.mtx>] (benchn.mtx) (Optional)
	      Hessian matrix

       -bdn [<.ndx>] (bench.ndx) (Optional)
	      Index file

       -bswap [<.xvg>] (benchswp.xvg) (Optional)
	      xvgr/xmgr	file

       Other options:

       -xvg <enum> (xmgrace)
	      xvg plot formatting: xmgrace, xmgr, none

       -mdrun <string>
	      Command	line   to  run	a  simulation,	e.g.  agmx  mdruna  or

       -np <int> (1)
	      Number of	ranks to run the tests on (must	be >  2	 for  separate
	      PME ranks)

       -npstring <enum>	(np)
	      Name of the $MPIRUN option that specifies	the number of ranks to
	      use (anpa, or ana; use anonea if there is	no such	 option):  np,
	      n, none

       -ntmpi <int> (1)
	      Number  of  MPI-threads  to run the tests	on (turns MPI &	mpirun

       -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	 spac-

       -rmax <real> (0)
	      If  >0, maximal rcoulomb for -ntpr>1 (rcoulomb upscaling results
	      in fourier grid downscaling)

       -rmin <real> (0)
	      If >0, minimal rcoulomb for -ntpr>1

       -[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>	(1500)
	      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	(over-
	      writes 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

       -gpu_id <string>
	      List of unique GPU device	IDs that are eligible for use

       -[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)

       -deffnm <string>
	      Set the default filenames	(launch	only)


       More    information    about    GROMACS	  is	available    at	    <->.

       2020, GROMACS development team

2020.4				 Oct 06, 2020		       GMX-TUNE_PME(1)


Want to link to this manual page? Use this URL:

home | help