In this short example we will show you how to run a simple GROMACS benchmark with EAR enabled.
GROMACS (https://www.gromacs.org)
The HECBioSim Benchmarks (https://www.hecbiosim.ac.uk/access-hpc/benchmarks)
GROMACS A free and open-source software suite for high-performance molecular dynamics and output analysis.
HECBioSim benchmark suite consists of a set of simple benchmarks for a number of popular Molecular Dynamics (MD) engines, each of which is set at a different atom count. The benchmark suite currently contains benchmarks for the AMBER, GROMACS, LAMMPS and NAMD molecular dynamics packages.
Prepare the benchmark input
In this example we will choose the "465K atom system - hEGFR Dimer of 1IVO and 1NQL" simulation (which can be found here https://github.com/victorusu/GROMACS_Benchmark_Suite/tree/1.0.0/HECBioSim/hEGFRDimer).
- This simulation contains a total number of atoms = 465,399 (Protein atoms = 21,749 Lipid atoms = 134,268 Water atoms = 309,087 Ions = 295).
- The run will take about 10 minutes to execute (using all 128 cores of an AMD ROME node).
Download it
curl -LJ https://github.com/victorusu/GROMACS_Benchmark_Suite/raw/1.0.0/HECBioSim/hEGFRDimer/benchmark.tpr -o hEGFRDimer_benchmark.tpr
Prepare the SLURM job-script
Notice all that is special here is Lines 10 and 11. This is how you call the EAR runtime library (EARL).
Read more detail here Energy Aware Runtime (EAR) if you want more information on how EAR works.
#!/bin/bash #SBATCH -p rome #SBATCH -n 128 #SBATCH -t 00:20:00 #SBATCH --exclusive #SBATCH --output=GROMACS_run.out #SBATCH --error=GROMACS_run.err #SBATCH --ear=on #SBATCH --ear-policy=monitoring module load 2022 module load foss/2022a module load GROMACS/2021.6-foss-2022a srun --ntasks=128 --cpus-per-task=1 gmx_mpi mdrun -s hEGFRDimer_benchmark.tpr
Obviously you need to submit it to the SLURM scheduler!!
So...
sbatch myjobscript.sh
Get energy and performance metrics report from your job
Once your job has completed all you need to do is use the energy accounting tool eacct
and pass your jobID to the job.
module load 2022 module load ear eacct -j 4131948
You will see the metrics for the job...
JOB-STEP USER APPLICATION POLICY NODES AVG/DEF/IMC(GHz) TIME(s) POWER(W) GBS CPI ENERGY(J) GFLOPS/W IO(MBs) MPI% G-POW (T/U) G-FREQ G-UTIL(G/MEM) 4131948-sb benjamic myjobscript.sh MO 1 2.39/2.40/--- 1206.00 485.80 --- --- 585876 --- --- --- --- --- --- 4131948-0 benjamic myjobscript.sh MO 1 2.39/2.40/1.80 72.29 692.52 22.54 0.39 50064 44.5177 2.9 37.4 0.00/--- --- ---
Read more about what these metrics mean here Energy Aware Runtime (EAR)#Jobaccounting(eacct)