Amber

Amber

Amber (Assisted Model Building with Energy Refinement) is a family of force fields and molecular simulation software. Amber sander and Amber pmemd MPI (academic version) are available on duhpc. Amber 24 with pmemd.cuda achieves 622 ns/day on the V100 GPU — the fastest MD engine available on the cluster.

Template for Amber CPU Job (amber_cpu.sh):

#!/bin/bash
#============================================================
# Amber pmemd.MPI CPU Job Template - duhpc Cluster
# Use for: energy minimization, heating, equilibration
# Usage: sbatch amber_cpu.sh
#
# UPDATED 2026-09-21
#============================================================

#SBATCH --job-name=pmf-4-5-2        # Job name (change this)
#SBATCH --partition=compute         # CPU compute partition
#SBATCH --nodes=1
#SBATCH --ntasks=16                  # MPI tasks (max 48 for one node)
#SBATCH --cpus-per-task=1
#SBATCH --mem=16G
#SBATCH --time=3-00:00:00           # Max time (days-hours:min:sec)
#SBATCH --output=%x_%j.out
#SBATCH --error=%x_%j.err

source /scratch/apps/amber/amber24/amber.sh
export LD_LIBRARY_PATH=/opt/ohpc/pub/libs/gnu8/openblas/0.3.7/lib:\
/opt/ohpc/pub/compiler/gcc/8.3.0/lib64:\
/opt/ohpc/pub/mpi/openmpi3-gnu8/3.1.4/lib:\
$LD_LIBRARY_PATH

MPI_RUN=/opt/ohpc/pub/mpi/openmpi3-gnu8/3.1.4/bin/mpirun

# Optional fail-fast: makes a broken environment obvious in the .err
which pmemd.MPI
$MPI_RUN --version | head -1

$MPI_RUN -np 8  pmemd.MPI -O -i equil_3.in -o equil_3.out -p dimer-ph-4-5-exp.prmtop -c equi1-1.rst  -r equil_3.rst -x equil_3.nc -ref equi1-1.rst -inf equil_3.mdinfo
$MPI_RUN -np 16 pmemd.MPI -O -i prod_3.in  -o prod_3.out  -p dimer-ph-4-5-exp.prmtop -c equil_3.rst -r prod_3.rst  -x prod_3.nc                    -inf prod_3.mdinfo

Template for Amber GPU Job (amber_gpu.sh):

#!/bin/bash
#============================================================
# Amber pmemd.cuda GPU Job Template - duhpc Cluster
# Copy this file, edit the USER SETTINGS section, and submit
# Usage: sbatch amber_gpu.sh
#============================================================

#SBATCH --job-name=amber_gpu        # Job name (change this)
#SBATCH --partition=gpu             # GPU partition - DO NOT CHANGE
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=8
#SBATCH --gres=gpu:1                # Request 1 GPU - DO NOT CHANGE
#SBATCH --mem=16G
#SBATCH --time=2-00:00:00           # Max time (days-hours:min:sec)
#SBATCH --output=%x_%j.out          # Output file (%x=jobname, %j=jobid)
#SBATCH --error=%x_%j.err
#SBATCH --mail-type=BEGIN,END,FAIL
#SBATCH --mail-user=your@email.com  # Change to your email

#------------------------------------------------------------
# USER SETTINGS - Edit these for your simulation
#------------------------------------------------------------
INPUT="prod.in"            # MD input file
PRMTOP="system.prmtop"    # Topology file
INPCRD="equil.rst"         # Input coordinates/restart file
OUTPUT="prod"              # Output prefix (prod.out, prod.nc etc)
#------------------------------------------------------------

echo "============================================="
echo "Amber pmemd.cuda GPU Job - duhpc Cluster"
echo "Job ID   : $SLURM_JOBID"
echo "User     : $USER"
echo "Node     : $SLURMD_NODENAME"
echo "CPUs     : $SLURM_CPUS_PER_TASK"
echo "Start    : $(date)"
echo "============================================="

# ── Load Amber 24 ─────────────────────────────────────────
source /scratch/apps/amber/amber24/amber.sh
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:\
/opt/ohpc/pub/libs/gnu8/openblas/0.3.7/lib:\
/opt/ohpc/pub/compiler/gcc/8.3.0/lib64:\
$LD_LIBRARY_PATH

# ── Verify environment ────────────────────────────────────
echo "Amber    : $(pmemd.cuda --version 2>&1)"
echo "GPU      : $(nvidia-smi --query-gpu=name,memory.total --format=csv,noheader)"
echo ""

# ── Check input files ─────────────────────────────────────
for f in $INPUT $PRMTOP $INPCRD; do
    if [ ! -f "$f" ]; then
        echo "ERROR: Missing input file: $f"
        exit 1
    fi
done
echo "Input files: OK"
echo ""

# ── Run pmemd.cuda ────────────────────────────────────────
echo "--- Starting GPU MD ---"
START=$(date +%s)

pmemd.cuda -O \
    -i   $INPUT   \
    -p   $PRMTOP  \
    -c   $INPCRD  \
    -o   ${OUTPUT}.out  \
    -r   ${OUTPUT}.rst  \
    -x   ${OUTPUT}.nc   \
    -inf ${OUTPUT}.mdinfo

EXIT=$?
END=$(date +%s)

# ── Performance Report ────────────────────────────────────
echo ""
echo "============================================="
echo "PERFORMANCE REPORT"
echo "============================================="
if [ $EXIT -eq 0 ]; then
    echo "Status   : SUCCESS"
    echo "GPU      : $(nvidia-smi --query-gpu=name --format=csv,noheader)"
    echo "Wall time: $((END-START)) seconds"
    echo ""
    grep "ns/day" ${OUTPUT}.mdinfo 2>/dev/null
    grep "ns/day" ${OUTPUT}.out 2>/dev/null | tail -3
else
    echo "Status   : FAILED (exit code $EXIT)"
    echo "Check ${OUTPUT}.out for details"
fi
echo "End time : $(date)"
echo "============================================="

Getting Support

  • Email to Mr. Imran Ghani on ighani[at]ducc[dot]du[dot]ac[dot]in for any duhpc related information.
back to chemistry.du.ac.in/hpcc