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.