Gmx tune_pme, bench.log file not found

GROMACS version: GROMACS 2021-modified
GROMACS modification: No
Here post your question

Hi, I am trying to find best PME only ranks for my system. For that I am using gmx tune_pme with the following command

export MPIRUN=$(which srun)
gmx_mpi tune_pme -npstring n -s nvt.tpr -mdrun “gmx_mpi mdrun” -n 48
which gives me an error saying “Invalid command line -n”, see err.log file and also a solution at last to check with -nocheck option in gmx tune_pme

gmx_mpi tune_pme -npstring n -s nvt.tpr -mdrun “gmx_mpi mdrun” -n 48 -nocheck

But when I do this, it gives me another error saying logfile not found bench.log (see err2.log and perf.log).

Can anyone guide me through this. Thanks in advance
########################################

err.log

GROMACS: gmx tune_pme, version 2021-MODIFIED
Executable: /software/software/GROMACS/2021-foss-2020b/bin/gmx_mpi
Data prefix: /software/software/GROMACS/2021-foss-2020b
Working dir: /home/p303749/Kap95_PG/trail2/3
Command line:
gmx_mpi tune_pme -npstring n -s nvt.tpr -mdrun ‘gmx_mpi mdrun’ -n 48

Reading file nvt.tpr, VERSION 2021-MODIFIED (single precision)

Back Off! I just backed up perf.out to ./#perf.out.1#
Will test 1 tpr file.
Making sure that mdrun can be executed. Trying ‘/usr/bin/srun -n 1 gmx_mpi mdrun -version -maxh 0.001 1> benchtest.log 2>&1’ … passed.
Making benchmark tpr file with 2500 time steps.
Reading file nvt.tpr, VERSION 2021-MODIFIED (single precision)
Calculating PME grid points on the basis of a fourierspacing of 0.160000 nm
Writing benchmark tpr nvt_bench00.tpr with nsteps=2500, unmodified settings

Back Off! I just backed up nvt_bench00.tpr to ./#nvt_bench00.tpr.1#
Will try the following 2 different values for -npme:
0, and -1 (auto).
Making sure the benchmarks can be executed by running just 1 step…
Executing ‘/usr/bin/srun -n 1 gmx_mpi mdrun -npme 0 -nb cpu -s nvt_bench00.tpr -resetstep 1500 -o bench.trr -x bench.xtc -cpo bench.cpt -c bench.gro -e bench.edr -g bench.log -n 48 -nsteps 1 -quiet’ …
srun: job 20043874 queued and waiting for resources
srun: job 20043874 has been allocated resources


Program: gmx mdrun, version 2021-MODIFIED
Source file: src/gromacs/commandline/cmdlineparser.cpp (line 275)
Function: void gmx::CommandLineParser::parse(int*, char**)

Error in user input:
Invalid command-line options
Unknown command-line option -n

For more information and tips for troubleshooting, please check the GROMACS
website at Errors - Gromacs


MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.

srun: Job step aborted: Waiting up to 32 seconds for job step to finish.
slurmstepd: error: *** STEP 20043874.0 ON pg-node208 CANCELLED AT 2021-05-12T15:52:38 ***
srun: error: pg-node208: task 0: Exited with exit code 1
srun: Terminating job step 20043874.0
Cannot run the first benchmark simulation! Please check the error message of
mdrun for the source of the problem. Did you provide a command line
argument that neither gmx tune_pme nor mdrun understands? If you’re
sure your command line should work, you can bypass this check with
gmx tune_pme -nocheck. The failing command was:

/usr/bin/srun -n 1 gmx_mpi mdrun -npme 0 -nb cpu -s nvt_bench00.tpr -resetstep 1500 -o bench.trr -x bench.xtc -cpo bench.cpt -c bench.gro -e bench.edr -g bench.log -n 48 -nsteps 1 -quiet

err2.log

GROMACS: gmx tune_pme, version 2021-MODIFIED
Executable: /software/software/GROMACS/2021-foss-2020b/bin/gmx_mpi
Data prefix: /software/software/GROMACS/2021-foss-2020b
Working dir: /home/p303749/Kap95_PG/trail2/3
Command line:
gmx_mpi tune_pme -npstring n -s nvt.tpr -mdrun ‘gmx_mpi mdrun’ -n 48 -nocheck

Reading file nvt.tpr, VERSION 2021-MODIFIED (single precision)
Will test 1 tpr file.
Making sure that mdrun can be executed. Trying ‘/usr/bin/srun -n 1 gmx_mpi mdrun -version -maxh 0.001 1> benchtest.log 2>&1’ … passed.
Making benchmark tpr file with 2500 time steps.
Reading file nvt.tpr, VERSION 2021-MODIFIED (single precision)
Calculating PME grid points on the basis of a fourierspacing of 0.160000 nm
Writing benchmark tpr nvt_bench00.tpr with nsteps=2500, unmodified settings
Will try the following 2 different values for -npme:
0, and -1 (auto).

=== Progress 0%, tpr 1/1, run 1/2, pass 1/2:
/usr/bin/srun -n 1 gmx_mpi mdrun -npme 0 -s nvt_bench00.tpr -resetstep 1500 -o bench.trr -x bench.xtc -cpo bench.cpt -c bench.gro -e bench.edr -g bench.log -n 48
WARNING: Could not find logfile bench.log.
Cleaning up, deleting benchmark temp files …
Deleting bencherr.log
Skipping remaining passes of unsuccessful setting, see log file for details.

=== Progress 50%, tpr 1/1, run 2/2, pass 1/2:
/usr/bin/srun -n 1 gmx_mpi mdrun -npme -1 -s nvt_bench00.tpr -resetstep 1500 -o bench.trr -x bench.xtc -cpo bench.cpt -c bench.gro -e bench.edr -g bench.log -n 48
WARNING: Could not find logfile bench.log.
Cleaning up, deleting benchmark temp files …
Deleting bencherr.log
Skipping remaining passes of unsuccessful setting, see log file for details.


Program: gmx tune_pme, version 2021-MODIFIED
Source file: src/gromacs/tools/tune_pme.cpp (line 536)

Fatal error:
None of the runs was successful! Check perf.out for problems.

For more information and tips for troubleshooting, please check the GROMACS
website at Errors - Gromacs


MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.

perf.log


  P E R F O R M A N C E   R E S U L T S

gmx tune_pme for GROMACS 2021-MODIFIED
Number of ranks : 1
The mpirun command is : /usr/bin/srun
Passing # of ranks via : -n
The mdrun command is : gmx_mpi mdrun
mdrun args benchmarks : -resetstep 1500 -o bench.trr -x bench.xtc -cpo bench.cpt -c bench.gro -e bench.edr -g bench.log -n 48
Benchmark steps : 1000
dlb equilibration steps : 1500
mdrun args at launchtime: -n 48
Repeats for each test : 2
Input file : nvt.tpr
PME/PP load estimate : 0.148762
Number of particles : 143368
Coulomb type : PME
Grid spacing x y z : 0.158220 0.158220 0.158220
Van der Waals type : Cut-off
rvdw_switch : 1.000000 nm

Will try these real/reciprocal workload settings:
No. scaling rcoulomb nkx nky nkz spacing rvdw tpr file
0 1.000000 1.200000 72 72 72 0.160000 1.200000 nvt_bench00.tpr

Individual timings for input file 0 (nvt_bench00.tpr):
PME ranks Gcycles ns/day PME/f Remark


Cannot run the first benchmark simulation! Please check the error message of
mdrun for the source of the problem. Did you provide a command line
argument that neither gmx tune_pme nor mdrun understands? If you’re
sure your command line should work, you can bypass this check with
gmx tune_pme -nocheck. The failing command was:

/usr/bin/srun -n 1 gmx_mpi mdrun -npme 0 -nb cpu -s nvt_bench00.tpr -resetstep 1500 -o bench.trr -x bench.xtc -cpo bench.cpt -c bench.gro -e bench.edr -g bench.log -n 48 -nsteps 1 -quiet

I think the problem is that (in your case) gmx tune_pme is an MPI-enabled executable that then calls another MPI-enabled execudable, i.e. mdrun, which often causes trouble. Please compile a gmx binary without MPI support, and an mdrun executable with MPI support to be used by gmx tune_pme.

Thank you for the reply. I understand the problem now.