PLUMED na Devane¶

PLUMED je knižnica s otvoreným zdrojovým kódom na zintenzívnené vzorkovanie a analýzu molekulárnych simulácií. Bežne sa používa spolu s motormi molekulárnej dynamiky, ako je GROMACS, na vykonávanie technik ako je metadynamika, umbrella sampling a výpočet voľnej energie.
Používateľská príručka¶
Dostupné verzie¶
V súčasnosti sú dostupné tieto verzie PLUMED:
- Závislosti pri behu:
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
PLUMED/2.7.3-foss-2021b.
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
Modul PLUMED môžete načítať pomocou nasledujúceho príkazu:
module load PLUMED/2.7.3-foss-2021b
- Závislosti pri behu:
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
PLUMED/2.8.1-foss-2022a.
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
Modul PLUMED môžete načítať pomocou nasledujúceho príkazu:
module load PLUMED/2.8.1-foss-2022a
- Závislosti pri behu:
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
PLUMED/2.9.0-foss-2022b.
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
Modul PLUMED môžete načítať pomocou nasledujúceho príkazu:
module load PLUMED/2.9.0-foss-2022b
- Závislosti pri behu:
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
PLUMED/2.9.0-foss-2023a.
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
Modul PLUMED môžete načítať pomocou nasledujúceho príkazu:
module load PLUMED/2.9.0-foss-2023a
- Závislosti pri behu:
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
PLUMED/2.9.2-foss-2023b.
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
Modul PLUMED môžete načítať pomocou nasledujúceho príkazu:
module load PLUMED/2.9.2-foss-2023b
- Závislosti pri behu:
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
PLUMED/2.9.3-foss-2024a.
- Žiadne, potrebné knižnice a závislosti sa načítajú automaticky s modulom
Modul PLUMED môžete načítať pomocou nasledujúceho príkazu:
module load PLUMED/2.9.3-foss-2024a
GROMACS
PLUMED je plugin knižnica a bežne sa používa spolu s GROMACS. Pri spúšťaní simulácií si uistite, že máte načítaný kompatibilný modul GROMACS.
Použitie s GROMACS¶
PLUMED sa používa tak, že počas simulácie sa do GROMACS prehodí vstupný súbor plumed.dat.
Príklad spúšťacieho príkazu¶
mpiexec -np ${SLURM_NTASKS} gmx_mpi mdrun -s topol.tpr -plumed plumed.dat
Príklad spúšťacieho skriptu (CPU)¶
#!/bin/bash
#SBATCH --job-name= # Name of the job
#SBATCH --account= # Project account number
#SBATCH --partition= # Partition name (short, medium, long)
#SBATCH --nodes= # Number of nodes
#SBATCH --ntasks= # Total number of MPI ranks
#SBATCH --cpus-per-task= # Number of threads per MPI rank
#SBATCH --time=hh:mm:ss # Time limit (hh:mm:ss)
#SBATCH --output=stdout.%j.out # Standard output (%j = Job ID)
#SBATCH --error=stderr.%j.err # Standard error
#SBATCH --mail-type=END,FAIL # Notifications for job done or failed
#SBATCH --mail-user= # Email address for notifications
# === Metadata functions ===
log_job_start() {
echo "================== SLURM JOB METADATA =================="
printf " Job ID : %s\n" "$SLURM_JOB_ID"
printf " Job Name : %s\n" "$SLURM_JOB_NAME"
printf " Partition : %s\n" "$SLURM_JOB_PARTITION"
printf " Nodes : %s\n" "$SLURM_JOB_NUM_NODES"
printf " Tasks (MPI) : %s\n" "$SLURM_NTASKS"
printf " CPUs per Task : %s\n" "$SLURM_CPUS_PER_TASK"
printf " Account : %s\n" "$SLURM_JOB_ACCOUNT"
printf " Submit Dir : %s\n" "$SLURM_SUBMIT_DIR"
printf " Work Dir : %s\n" "$PWD"
printf " Start Time : %s\n" "$(date)"
echo "========================================================"
}
log_job_end() {
printf " End Time : %s\n" "$(date)"
echo "========================================================"
}
# === Load required modules ===
module purge
module load GROMACS/2024.4-foss-2023b-CUDA-12.4.0
module load PLUMED/2.9.2-foss-2023b
# === Set working directories ===
# Use a shared filesystem for cross-node calculations
INIT_DIR="${SLURM_SUBMIT_DIR}"
WORK_DIR="/scratch/${SLURM_JOB_ACCOUNT}/${SLURM_JOB_ID}"
mkdir -p "$WORK_DIR"
# === Input/output file declarations ===
INPUT_FILES=""
OUTPUT_FILES=""
# === Copy input files to scratch ===
cp $INPUT_FILES "$WORK_DIR"
# === Change to working directory ===
cd "$WORK_DIR" || { echo "Failed to cd into $WORK_DIR"; exit 1; }
log_job_start >> "$INIT_DIR/jobinfo.$SLURM_JOB_ID.log"
# === Run GROMACS with PLUMED ===
mpiexec -np ${SLURM_NTASKS} gmx_mpi mdrun -s topol.tpr -plumed plumed.dat -ntomp ${SLURM_CPUS_PER_TASK}
# === Copy output files back ===
cp $OUTPUT_FILES "$INIT_DIR"
# === Optional: clean up scratch ===
# rm -rf "$WORK_DIR"
log_job_end >> "$INIT_DIR/jobinfo.$SLURM_JOB_ID.log"