GAMESS
GAMESS (General Atomic and Molecular Electronic Structure System) is a free, open-source quantum chemistry program developed by the Gordon group at Iowa State University. It computes the electronic structure of atoms, molecules, and clusters using a wide range of theoretical methods. On duhpc, GAMESS-US 2024.2.1 is installed centrally and available to all registered users via the module system. Capabilities include:
- Hartree-Fock (RHF, UHF, ROHF) and density functional theory (DFT) with many functionals
- Post-HF correlation methods: MP2, MP3, MP4, CCSD, CCSD(T), CCSDT, EOM-CC
- Multireference methods: CASSCF, MCSCF, MRPT, MRCI, GVB
- Excited states: TDDFT, EOM-CC, CIS, CASPT2
- Geometry optimisation, transition-state searches, IRC paths, frequency analysis
- Solvation models: PCM, COSMO, EFP
- Relativistic methods: ZORA, DKH, X2C
Template for GAMESS CPU Job (gamess_compute.sh):
#!/bin/bash
#============================================================
# GAMESS-US CPU Job Template (single-node) - duhpc Cluster
# Use for: HF, DFT, MP2, CC, CI, geometry optimizations
# Partition: compute (default, up to 5 days, up to 48 CPUs/node)
# Usage: sbatch gamess_compute.sh
#============================================================
#SBATCH --job-name=gamess_job # Job name (change this — do NOT use "gaussian")
#SBATCH --partition=compute # Default partition; shared with Gaussian
#SBATCH --nodes=1
#SBATCH --ntasks=16 # 2x GAMESS cores: 16 slots = 8 actual cores
#SBATCH --cpus-per-task=1
#SBATCH --mem=32G # Adjust to system size; max 4200 MB/CPU
#SBATCH --time=3-00:00:00 # days-hours:min:sec (max 5 days here)
#SBATCH --output=%x_%j.out
#SBATCH --error=%x_%j.err
#SBATCH --mail-type=END,FAIL
#SBATCH --mail-user=your@email.com # Change to your email
#------------------------------------------------------------
# USER SETTINGS - Edit these for your job
#------------------------------------------------------------
# Input file name (without the .inp extension)
INPUT="myjob"
# Number of GAMESS compute cores
# IMPORTANT: must equal half of --ntasks above, due to the DDI
# data-server architecture (1 data server per compute process).
NCPUS=8
# Processes-per-node (= NCPUS for single-node jobs)
PPN=8
#------------------------------------------------------------
echo "============================================="
echo "GAMESS-US Job - duhpc Cluster"
echo "Job ID : $SLURM_JOBID"
echo "Node : $SLURM_JOB_NODELIST"
echo "Partition: $SLURM_JOB_PARTITION"
echo "Working : $(pwd)"
echo "Input : ${INPUT}.inp"
echo "Cores : $NCPUS GAMESS compute + $NCPUS DDI data servers"
echo "Started : $(date)"
echo "============================================="
module purge
module load gamess/2024.2.1
# Sanity-check the input file is here
if [ ! -f "${INPUT}.inp" ]; then
echo "ERROR: ${INPUT}.inp not found in $(pwd)"
exit 1
fi
# Launch GAMESS. rungms args: <input> <version-tag> <ncpus> <ppn>
rungms ${INPUT} 00 ${NCPUS} ${PPN} > ${INPUT}.${SLURM_JOBID}.log 2>&1
RC=$?
echo "rungms exit code: $RC"
# Quick result summary
echo "============================================="
echo "Result summary:"
grep -E "FINAL .* ENERGY|EXECUTION OF GAMESS" ${INPUT}.${SLURM_JOBID}.log | tail -5
echo "============================================="
echo "Finished : $(date)"
echo "Punch file (geometries, etc.) saved in:"
echo " /scratch/home/$USER/gamess-userscr/${INPUT}.dat"
echo "============================================="
exit $RC
Template for GAMESS (MPI) Job (gamess_mpi.sh):
#!/bin/bash
#============================================================
# GAMESS-US Multi-Node MPI Job Template - duhpc Cluster
# Use for: large MP2, CC, CI jobs that need >1 node's RAM
# Partition: mpi (dedicated nodes, ≥2 nodes required)
# Usage: sbatch gamess_mpi.sh
# Note: For single-node jobs use gamess_compute.sh instead —
# the lua plugin will auto-redirect single-node mpi jobs.
#============================================================
#SBATCH --job-name=gamess_mpi # Do NOT use "gaussian" — triggers CPU cap
#SBATCH --partition=mpi # Multi-node, dedicated nodes
#SBATCH --nodes=2 # Minimum 2 (mpi has MinNodes=2)
#SBATCH --ntasks-per-node=32 # 2x cores-per-node for DDI
#SBATCH --cpus-per-task=1
#SBATCH --mem-per-cpu=3000 # MB per CPU; max 4200 MB
#SBATCH --time=2-00:00:00
#SBATCH --output=%x_%j.out
#SBATCH --error=%x_%j.err
#SBATCH --mail-type=END,FAIL
#SBATCH --mail-user=your@email.com
#------------------------------------------------------------
# USER SETTINGS
#------------------------------------------------------------
INPUT="bigmolecule"
# Compute cores PER NODE (half of --ntasks-per-node)
PPN=16
# Total compute cores across all nodes — computed automatically
NCPUS=$(( PPN * SLURM_NNODES ))
#------------------------------------------------------------
echo "============================================="
echo "GAMESS-US Multi-Node Job - duhpc Cluster"
echo "Job ID : $SLURM_JOBID"
echo "Nodes : $SLURM_NNODES ($SLURM_JOB_NODELIST)"
echo "Input : ${INPUT}.inp"
echo "Cores : $NCPUS GAMESS compute ($PPN per node)"
echo "Started : $(date)"
echo "============================================="
module purge
module load gamess/2024.2.1
if [ ! -f "${INPUT}.inp" ]; then
echo "ERROR: ${INPUT}.inp not found in $(pwd)"
exit 1
fi
rungms ${INPUT} 00 ${NCPUS} ${PPN} > ${INPUT}.${SLURM_JOBID}.log 2>&1
RC=$?
echo "rungms exit: $RC"
echo "============================================="
grep -E "FINAL .* ENERGY|EXECUTION OF GAMESS" ${INPUT}.${SLURM_JOBID}.log | tail -5
echo "============================================="
echo "Finished : $(date)"
echo "Punch file: /scratch/home/$USER/gamess-userscr/${INPUT}.dat"
exit $RC
Getting Support
- Email to Mr. Imran Ghani on ighani[at]ducc[dot]du[dot]ac[dot]in for any duhpc related information.
