===== Gaussian =====
[[http://gaussian.com|Gaussian]]
==== Job Gaussian MPI ====
Example script ''slurm-gaussian16-mpi.sh'' to run Gaussian 16 on 1 node using 28 cores and at most 80 GB of memory:
#!/bin/bash
#SBATCH --job-name=gaussian16_mpi
#SBATCH --output=%x.%j.out
#SBATCH --error=%x.%j.err
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=28
#SBATCH --mem=80G
#SBATCH --time=1-00:00:00
#SBATCH --partition=cpu
#
# Edit next line
#SBATCH --account=
test -n "$SLURM_NODELIST" || exit
test $SLURM_NNODES -eq 1 || exit
module load gaussian/16.B01
if [ ! -e "${SLURM_JOB_NAME}.com" ]; then
echo "Error: file '${SLURM_JOB_NAME}.com' not found." 1>&2
exit 1
fi
mkdir -p "$GAUSS_SCRDIR"
GAUSSIAN_MEM="$((SLURM_MEM_PER_NODE*90/100))MB"
echo -e "%NProcShared=${SLURM_TASKS_PER_NODE}\n%Mem=${GAUSSIAN_MEM}\n%chk=${SLURM_JOB_NAME}.${SLURM_JOB_ID}.chk" > "${SLURM_JOB_NAME}.${SLURM_JOB_ID}.com"
egrep -i -v '^%(NProcShared|Mem|chk)' "${SLURM_JOB_NAME}.com" >> "${SLURM_JOB_NAME}.${SLURM_JOB_ID}.com"
sed -i -r -e "s/(\-\-Link1\-\-)/\1\n%NProcShared=${SLURM_TASKS_PER_NODE}\n%Mem=${GAUSSIAN_MEM}\n%chk=${SLURM_JOB_NAME}.${SLURM_JOB_ID}.chk/g" \
"${SLURM_JOB_NAME}.${SLURM_JOB_ID}.com"
g16 "${SLURM_JOB_NAME}.${SLURM_JOB_ID}.com" "${SLURM_JOB_NAME}.${SLURM_JOB_ID}.log"
Example script ''slurm-gaussian16-mpi-exclusive.sh'' to run Gaussian 16 on 1 node in exclusive mode:
#!/bin/bash
#SBATCH --job-name=gaussian16_mpi
#SBATCH --output=%x.%j.out
#SBATCH --error=%x.%j.err
#SBATCH --nodes=1
#SBATCH --exclusive
#SBATCH --mem=0
#SBATCH --time=1-00:00:00
#SBATCH --partition=cpu
#
# Edit next line
#SBATCH --account=
test -n "$SLURM_NODELIST" || exit
test $SLURM_NNODES -eq 1 || exit
module load gaussian/16.B01
if [ ! -e "${SLURM_JOB_NAME}.com" ]; then
echo "Error: file '${SLURM_JOB_NAME}.com' not found." 1>&2
exit 1
fi
mkdir -p "$GAUSS_SCRDIR"
GAUSSIAN_MEM="$((SLURM_MEM_PER_NODE*90/100))MB"
echo -e "%NProcShared=${SLURM_TASKS_PER_NODE}\n%Mem=${GAUSSIAN_MEM}\n%chk=${SLURM_JOB_NAME}.${SLURM_JOB_ID}.chk" > "${SLURM_JOB_NAME}.${SLURM_JOB_ID}.com"
egrep -i -v '^%(NProcShared|Mem|chk)' "${SLURM_JOB_NAME}.com" >> "${SLURM_JOB_NAME}.${SLURM_JOB_ID}.com"
sed -i -r -e "s/(\-\-Link1\-\-)/\1\n%NProcShared=${SLURM_TASKS_PER_NODE}\n%Mem=${GAUSSIAN_MEM}\n%chk=${SLURM_JOB_NAME}.${SLURM_JOB_ID}.chk/g" \
"${SLURM_JOB_NAME}.${SLURM_JOB_ID}.com"
g16 "${SLURM_JOB_NAME}.${SLURM_JOB_ID}.com" "${SLURM_JOB_NAME}.${SLURM_JOB_ID}.log"
Submission example:
sbatch --job-name=test0322 slurm-gaussian16-mpi.sh
Use **%nosave** directive in .com input file to automatically delete the configuration binary file .chk