Package: | Gaussian |
---|---|
Description: | Software for electronic structure modeling |
For more information: | http://www.gaussian.com/g_prod/g09b.htm |
Categories: | |
License: | Proprietary |
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.
This section lists the available versions of the package Gaussianon the different clusters.
Version | Module tags | CPU(s) optimized for | GPU ready? |
---|---|---|---|
16 | gaussian/16 | x86_64 | Y |
09 | gaussian/09 | x86_64 | Y |
16c | gaussian/16c | x86_64 | Y |
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 on top of the previous checkpoint file. While this is usually fine, if the code dies in the process of writing the output file (and maybe in some other cases), the new checkpoint file could be corrupt, in which case there is no good checkpoint file afterwards.
A possible solution is to have Gaussian output the checkpoint file to a temporary file, and have the job script run a small process which will periodically backup the 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=...
(followed by whatever other SBATCH flags are needed)
# Load the appropriate modules
module load gaussian
# Run gaussian in the background, saving the pid
g16 input_file_name &
g16pid=$!
# 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, and terminate if not
for i in $(seq 1 ${bkmin})
do
[[ -x $(ps -o pid= -o 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
break
fi
done
done
done