Gaussian: Software for electronic structure modeling
Overview of package
| Package: | Gaussian |
|---|---|
| Description: | Software for electronic structure modeling |
| For more information: | http://www.gaussian.com/g_prod/g09b.htm |
| Categories: | Chemistry |
| License: | Proprietary |
General Usage
Gaussian is an electronic structure programs, used by chemists, chemical engineers, biochemists, physicists and other scientists worldwide. Starting from the fundamental laws of quantum mechanics, Gaussian predicts the energies, molecular structures, vibrational frequencies and molecular properties of molecules and reactions in a wide variety of chemical environments. Gaussian's models can be applied to both stable species and compounds which are difficult or impossible to observe experimentally (e.g., short-lived intermediates and transition structures).
This module will add the various gaussian commands (g09/g16, etc) to your path.
You may need to create the scratch directory for Gaussian, e.g.
issue the command: mkdir $GAUSS_SCRDIR
NOTE: For sundry technical reasons, in order to use Gaussian on the HPC clusters you will need to be added to a gaussian-users Unix group or you get permission denied errors. Just send a note to hpcc-help@umd.edu and you will be added to the group.
Available versions by cluster
This section lists the available versions of the package Gaussianon the UMD HPC clusters.
Versions available on the Zaratan cluster
| Version | Module tags | CPU(s) optimized for | GPU ready? |
|---|---|---|---|
| 16 | 16 | x86_64 | Yes |
| 16c | 16c | x86_64 | Yes |
| 09 | 09 | x86_64 | Yes |
Checkpointing with Gaussian
Checkpointing is a process by which the
state of a code is saved to a file so that the code can be restarted
from where it left off. Gaussian supports checkpointing out of the
box if you use the %chk= option in the Gaussian input file.
Although Gaussian will automatically save a checkpoint file periodically, each time it saves a checkpoint file, it saves it on top of the previous checkpoint file. While this is usually fine, and saves disk space (as there is only a single copy of the program's state saved to disk), the new checkpoint file could be corrupt, in which case there is no good checkpoint file afterwards. This could happen for a variety of reasons, including if the job dies while the checkpoint is being written.
A possible way around this issue is to have Gaussian output the checkpoint file to a temporary file, and have the job script run a small process which will periodically back up this temporary file to the "good" checkpoint file, after verifying that it is not corrupted. An implementation of this (based on the example from hpc-wiki.info would be something like
#!/bin/bash
#SBATCH --ntasks=...
#(add additional SBATCH flags as needed)
# Load the appropriate modules
module load gaussian
# Run gaussian in the background, saving the pid
g16 input_file_name &
g16pid=$1
# Periodically backup and verify the checkpoint file
# Backups will be made every $bkmin minutes
bkmin=60
while true
do
# Check every minute that g16 is still running
# Terminate if it is not still running
for i in $(seq 1 ${bkmin})
do
[[ -x $(ps -o pid= ucmd= -p ${g16pid} ]] && exit 0
sleep 1m
done
# Verify and backup the checkpoint file every bkmin minutes
for i in $(ls *.chk)
do
while true
do
rsync -auq ${i} ${i}.b4bk
chkchk ${i}.b4bk > /dev/null 2>&1
if [ $? -eq 0 ]; then
mv ${i}.b4bk ${i}.lastbk
fi
done
done
done
This will inspect the various *.chk files in the working directory every $bkmin minutes. If the checkpoint file is valid, it will be renamed to have a '.lastbk' extension.