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:1is 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 gromacsloads it, unless it was unloaded afterwards
"reading tpx file (...) version 137 with version 133 program"
- The
.tprwas written by GROMACS 2025.0 and read by an older GROMACS: usegmx_mpifromgromacs/2025.0
mdrun hangs at the end of a -multidir run
- The simulations have different
nsteps(see "Multiple Simulations" above): give them the samensteps
"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