Benchmark / test report
Container name: Singularity.gromacs-2021.3-intel-2021a.localimage.sif
test script
#!/bin/bash
#SBATCH -N2
#SBATCH --ntasks-per-node=48
#SBATCH -J plcr-gromacs-cpu-test
PLCR=${PLCR:-/net/pr2/projects/plgrid/plggsoftware/containers}
CONT=${1:-Singularity.gromacs-2022-foss-2021b.localimage.sif}
echo "PLCR test: $SLURM_JOB_NAME"
echo "PLCR jobid: $SLURM_JOBID"
echo "PLCR path: $PLCR"
echo "Test performed on: "`date`
echo "Testing container: $CONT"
SHA=`dd bs=1M if=$PLCR/images/$CONT 2>/dev/null | sha256sum | cut -d' ' -f1`
echo "Container checksum: $SHA"
export I_MPI_PMI_LIBRARY=$PLCR/local/pmi2/libpmi2.so
cd $TMPDIR
wget -q https://ftp.gromacs.org/pub/benchmarks/water_GMX50_bare.tar.gz
tar xzf water_GMX50_bare.tar.gz
cp water-cut1.0_GMX50_bare/3072/* .
export GMX_MAXBACKUP=-1
time singularity -s run -B $I_MPI_PMI_LIBRARY -B $PWD:/host_pwd --pwd /host_pwd $PLCR/images/$CONT gmx grompp -f pme.mdp -o bench.tpr
time srun --mpi=pmix --cpu-bind=cores singularity -s run -B $I_MPI_PMI_LIBRARY -B $PWD:/host_pwd --pwd /host_pwd $PLCR/images/$CONT gmx_mpi mdrun -resethway -npme 0 -notunepme -noconfout -nsteps 1000 -v -s bench.tpr
RC=$?
grep 'Performance:' $SLURM_SUBMIT_DIR/slurm-${SLURM_JOB_ID}.out | awk '{print $2}' > result
echo "Test completed, rc=$RC, Performance:" $(cat result) "[ns/day]"
rm -rf $TMPDIR
test results
PLCR test: plcr-gromacs-cpu-test
PLCR jobid: 348042
PLCR path: /net/pr2/projects/plgrid/plggsoftware/containers
Test performed on: Mon Apr 4 14:09:10 CEST 2022
Testing container: Singularity.gromacs-2022-foss-2021b.localimage.sif
Container checksum: f42b5345ce2ca84abb728c378145ab0490f24a274980ba7299e4d3d4a4d42dfb
:-) GROMACS - gmx grompp, 2022-EasyBuild_4.5.3 (-:
Executable: /app/software/GROMACS/2022-foss-2021b/bin/gmx
Data prefix: /app/software/GROMACS/2022-foss-2021b
Working dir: /host_pwd
Command line:
gmx grompp -f pme.mdp -o bench.tpr
Ignoring obsolete mdp entry 'title'
Ignoring obsolete mdp entry 'cpp'
Ignoring obsolete mdp entry 'ns_type'
Replacing old mdp entry 'nstxtcout' by 'nstxout-compressed'
Generating 1-4 interactions: fudge = 0.5
NOTE 1 [file unknown]:
You are using constraints on all bonds, whereas the forcefield has been
parametrized only with constraints involving hydrogen atoms. We suggest
using constraints = h-bonds instead, this will also improve performance.
Number of degrees of freedom in T-Coupling group System is 6143997.00
There was 1 note
GROMACS reminds you: "All sorts of things can happen when you're open to new ideas and playing around with things." (Stephanie Kwolek, inventor of Kevlar)
Setting the LD random seed to -847385350
Generated 330891 of the 330891 non-bonded parameter combinations
Generated 330891 of the 330891 1-4 parameter combinations
Excluding 2 bonded neighbours molecule type 'SOL'
turning all bonds into constraints...
Excluding 2 bonded neighbours molecule type 'SOL'
Excluding 2 bonded neighbours molecule type 'SOL'
Excluding 2 bonded neighbours molecule type 'SOL'
Analysing residue names:
There are: 1024000 Water residues
The largest distance between excluded atoms is 0.165 nm
Determining Verlet buffer for a tolerance of 0.005 kJ/mol/ps at 300 K
Calculated rlist for 1x1 atom pair-list as 1.036 nm, buffer size 0.036 nm
Set rlist, assuming 4x4 atom pair-list, to 1.000 nm, buffer size 0.000 nm
Note that mdrun will redetermine rlist based on the actual pair-list setup
Calculating fourier grid dimensions for X Y Z
Using a fourier grid of 400x200x200, spacing 0.125 0.125 0.125
Estimate for the relative computational load of the PME mesh part: 0.34
This run will generate roughly 234 Mb of data
real 0m6.820s
user 0m5.637s
sys 0m0.943s
:-) GROMACS - gmx mdrun, 2022-EasyBuild_4.5.3 (-:
Executable: /app/software/GROMACS/2022-foss-2021b/bin/gmx_mpi
Data prefix: /app/software/GROMACS/2022-foss-2021b
Working dir: /host_pwd
Command line:
gmx_mpi mdrun -resethway -npme 0 -notunepme -noconfout -nsteps 1000 -v -s bench.tpr
Reading file bench.tpr, VERSION 2022-EasyBuild_4.5.3 (single precision)
Overriding nsteps with value passed on the command line: 1000 steps, 2 ps
Changing nstlist from 10 to 40, rlist from 1 to 1.099
Using 96 MPI processes
Non-default thread affinity set, disabling internal thread affinity
Using 1 OpenMP thread per MPI process
starting mdrun 'Water'
1000 steps, 2.0 ps.
step 0
step 100, remaining wall clock time: 29 s
imb F 3% step 200, remaining wall clock time: 25 s
step 300, remaining wall clock time: 22 s
imb F 2% step 400, remaining wall clock time: 19 s
step 500: resetting all time and cycle counters
step 500, remaining wall clock time: 16 s
imb F 2% step 600, remaining wall clock time: 12 s
step 700, remaining wall clock time: 9 s
imb F 3% step 800, remaining wall clock time: 6 s
step 900, remaining wall clock time: 3 s
imb F 2% step 1000, remaining wall clock time: 0 s
Dynamic load balancing report:
DLB was off during the run due to low measured imbalance.
Average load imbalance: 2.5%.
The balanceable part of the MD step is 52%, load imbalance is computed from this.
Part of the total run time spent waiting due to load imbalance: 1.3%.
Core t (s) Wall t (s) (%)
Time: 1561.793 16.270 9599.5
(ns/day) (hour/ns)
Performance: 5.321 4.510
GROMACS reminds you: "Philosophy of science is about as useful to scientists as ornithology is to birds." (Richard Feynman)
real 0m42.034s
user 0m0.022s
sys 0m0.023s
Test completed, rc=0, Performance: 5.321 [ns/day]