Skip to content

GROMACS 2025.0 with PLUMED 2.10.1 - User Guide

Cluster: XLence (UNIMI Dipartimento di Scienze Farmacologiche e Biomolecolari) Date: September 30, 2026 Installation: /sw/gromacs/2025.0-avx2/ (one build for login and compute nodes)


πŸ“¦ Version Information

GROMACS: 2025.0, patched with PLUMED 2.10.1 PLUMED: 2.10.1, loaded at run time from the plumed module CUDA: 12.5 (embedded via RUNPATH, no module needed), code for the RTX 2080 Ti (sm_75) MPI: OpenMPI 4.1.6 (the system mpirun) SIMD: AVX2 (256-bit), on all nodes FFTW: 3.3.10, built by GROMACS with AVX2

One build for all nodes

GROMACS 2025.0 has a single build that runs on the login nodes and on node1-5/ngs. There is no architecture detection any more.


πŸš€ Loading the Module

module load gromacs          # gromacs/2025.0; also loads plumed (plumed/2.10.1)

# Verify
gmx_mpi --version | head -3
echo $GROMACS_ROOT

The module can be loaded together with the Python analysis environment: module load md/26 gromacs/2025.0.

Note: a .tpr file written by GROMACS 2025.0 cannot be read by older GROMACS versions. Prepare and run it with the same version.


πŸ’» Main Executable

gmx_mpi - GROMACS with MPI support (use this for all simulations)

All GROMACS tools are accessed via subcommands:

gmx_mpi mdrun      # Run MD simulation
gmx_mpi grompp     # Prepare MD run
gmx_mpi pdb2gmx    # Convert PDB to GROMACS topology
gmx_mpi editconf   # Edit configuration
gmx_mpi solvate    # Solvate system
gmx_mpi genion     # Add ions

πŸ“– Usage Examples

1. System Preparation

module load gromacs

# Convert PDB to GROMACS format
gmx_mpi pdb2gmx -f protein.pdb -o conf.gro -p topol.top -ff amber99sb-ildn -water tip3p

# Define box
gmx_mpi editconf -f conf.gro -o box.gro -c -d 1.0 -bt cubic

# Solvate
gmx_mpi solvate -cp box.gro -cs spc216.gro -o solvated.gro -p topol.top

# Add ions (neutralize)
gmx_mpi grompp -f ions.mdp -c solvated.gro -p topol.top -o ions.tpr
gmx_mpi genion -s ions.tpr -o ionized.gro -p topol.top -pname NA -nname CL -neutral

2. Basic GPU Simulation

#!/bin/bash
#SBATCH --job-name=gromacs
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --gres=gpu:1
#SBATCH --time=24:00:00

module purge
module load gromacs

# Non-bonded and PME on the GPU, OpenMP threads as many as the allocated cores
# (mdrun also moves the update to the GPU when the system allows it)
GPU="-nb gpu -pme gpu -ntomp $SLURM_CPUS_PER_TASK"

# Energy minimization
gmx_mpi grompp -f em.mdp -c ionized.gro -p topol.top -o em.tpr
gmx_mpi mdrun -v -deffnm em -ntomp $SLURM_CPUS_PER_TASK

# NVT equilibration
gmx_mpi grompp -f nvt.mdp -c em.gro -r em.gro -p topol.top -o nvt.tpr
gmx_mpi mdrun -v -deffnm nvt $GPU

# NPT equilibration
gmx_mpi grompp -f npt.mdp -c nvt.gro -r nvt.gro -t nvt.cpt -p topol.top -o npt.tpr
gmx_mpi mdrun -v -deffnm npt $GPU

# Production
gmx_mpi grompp -f md.mdp -c npt.gro -t npt.cpt -p topol.top -o md.tpr
gmx_mpi mdrun -v -deffnm md $GPU

3. PLUMED-Enhanced MD

GROMACS is patched with PLUMED 2.10.1 and loads the PLUMED kernel at run time from PLUMED_KERNEL, which the plumed module sets (module load gromacs loads it):

#!/bin/bash
#SBATCH --gres=gpu:1

module purge
module load gromacs

# Create plumed.dat
cat > plumed.dat << 'EOF'
# Distance collective variable
d1: DISTANCE ATOMS=1,10
PRINT ARG=d1 FILE=COLVAR STRIDE=100
EOF

# Run with PLUMED
gmx_mpi mdrun -v -deffnm md -plumed plumed.dat

4. Multiple Simulations and Replica Exchange

#SBATCH --ntasks=2
#SBATCH --gres=gpu:1

module load gromacs

# One simulation per directory (each with its topol.tpr, and plumed.dat if used)
mpirun -np 2 gmx_mpi mdrun -multidir rep0 rep1 -plumed plumed.dat
# Replica exchange every 500 steps
mpirun -np 2 gmx_mpi mdrun -multidir rep0 rep1 -replex 500 -plumed plumed.dat

With -multidir, PLUMED writes one output per replica (COLVAR.0, COLVAR.1, ...).

Important: all simulations must have the same nsteps. With different numbers of steps, GROMACS 2025.0 with PLUMED hangs at the end of the shortest one. With -replex, PLUMED can print collective variables but not apply a bias (not yet supported by the PLUMED patch for 2025.0).


πŸ”§ Example MDP Files

Energy Minimization (em.mdp)

integrator  = steep
emtol       = 1000.0
emstep      = 0.01
nsteps      = 50000

cutoff-scheme = Verlet
nstlist     = 10
coulombtype = PME
rcoulomb    = 1.0
rvdw        = 1.0
pbc         = xyz

NVT Equilibration (nvt.mdp)

integrator  = md
dt          = 0.002
nsteps      = 50000     ; 100 ps

nstxout     = 5000
nstvout     = 5000
nstenergy   = 500
nstlog      = 500

continuation = no
constraint_algorithm = lincs
constraints = h-bonds

cutoff-scheme = Verlet
nstlist     = 10

coulombtype = PME
rcoulomb    = 1.0
rvdw        = 1.0

tcoupl      = V-rescale
tc-grps     = Protein Non-Protein
tau_t       = 0.1  0.1
ref_t       = 300  300

pcoupl      = no
pbc         = xyz

Production (md.mdp)

integrator  = md
dt          = 0.002
nsteps      = 5000000   ; 10 ns

nstxout     = 0
nstvout     = 0
nstfout     = 0
nstxout-compressed = 5000
compressed-x-grps  = System
nstenergy   = 5000
nstlog      = 5000

continuation = yes
constraint_algorithm = lincs
constraints = h-bonds

cutoff-scheme = Verlet
nstlist     = 10

coulombtype = PME
rcoulomb    = 1.0
rvdw        = 1.0

tcoupl      = V-rescale
tc-grps     = Protein Non-Protein
tau_t       = 0.1  0.1
ref_t       = 300  300

pcoupl      = Parrinello-Rahman
pcoupltype  = isotropic
tau_p       = 2.0
ref_p       = 1.0
compressibility = 4.5e-5

pbc         = xyz
DispCorr    = EnerPres

The neighbor list (rlist, nstlist) is tuned by mdrun itself with the Verlet scheme; ns_type no longer exists.


πŸ“Š Analysis Examples

module load gromacs

# RMSD
echo "4 4" | gmx_mpi rms -s md.tpr -f md.xtc -o rmsd.xvg -tu ns

# RMSF
echo "4" | gmx_mpi rmsf -s md.tpr -f md.xtc -o rmsf.xvg -res

# Radius of gyration
echo "4" | gmx_mpi gyrate -s md.tpr -f md.xtc -o gyrate.xvg

# Hydrogen bonds
echo "1 1" | gmx_mpi hbond -s md.tpr -f md.xtc -num hbnum.xvg

For Python analysis (MDAnalysis, MDTraj, ...): module load md/26, which can be loaded together with gromacs/2025.0.


πŸ› Troubleshooting

"Could not find GPU"

  • Ensure #SBATCH --gres=gpu:1 is set
  • Check with nvidia-smi

"You are trying to use plumed, but it is not available. Check your PLUMED_KERNEL environment variable."

  • No plumed module is loaded: module load gromacs loads it, unless it was unloaded afterwards

"reading tpx file (...) version 137 with version 133 program"

  • The .tpr was written by GROMACS 2025.0 and read by an older GROMACS: use gmx_mpi from gromacs/2025.0

mdrun hangs at the end of a -multidir run

  • The simulations have different nsteps (see "Multiple Simulations" above): give them the same nsteps

"Fatal error: number of coordinates in coordinate file does not match topology"

  • Rebuild TPR: gmx_mpi grompp -f file.mdp -c file.gro -p topol.top -o file.tpr

πŸ“š Documentation

Local: - Build, validation and choices: /sw/gromacs/2025.0-avx2/README-xlence.md - PLUMED on the cluster: /sw/plumed/2.10.1/README-xlence.md

Online: - GROMACS Manual: https://manual.gromacs.org/2025.0/ - Tutorials: https://tutorials.gromacs.org/ - PLUMED Manual: https://www.plumed.org/doc-v2.10/user-doc/html/


πŸ“ Citation

Abraham, M.J., et al. GROMACS: High performance molecular simulations through multi-level parallelism from laptops to supercomputers. SoftwareX 1-2, 19-25 (2015)

For PLUMED:

Tribello, G.A., et al. PLUMED 2: New feathers for an old bird. Computer Physics Communications 185, 604 (2014)


πŸ”„ Version History

Date Version Changes
2025-10-09 2024.3 + PLUMED 2.9 AVX2 and AVX-512 builds
2026-09-30 2025.0 + PLUMED 2.10.1 One AVX2 build for all nodes, independent of md/26; 2024.3 and md/26's own GROMACS removed

For questions contact: Cluster administrators Installation: September 30, 2026 Installed by: Claude Code + Uliano Guerrini