Strumenti Utente

Strumenti Sito


calcoloscientifico:userguide:gaussian

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:

slurm-gaussian16-mpi.sh
#!/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=<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:

slurm-gaussian16-mpi-exclusive.sh
#!/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=<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
calcoloscientifico/userguide/gaussian.txt · Ultima modifica: 30/06/2022 12:52 da fabio.spataro