How to run Gaussian09 jobs
Gaussian, Inc. recently took down the G09 users guide to update for G16. A local copy of the G09 guide can be found here. You will need either to be on the NREL network or logged into the NREL VPN in order to see the content.
This document includes information about the Gaussian09 electronic structure program, and includes guidelines on how to run Gaussian09 jobs at NREL. A sample batch script for submitting Gaussian09 jobs is included.
Important note: To run Gaussian09, users must have membership in the g09 group on Peregrine. Contact HPC-Help to be added to this group by including your username, and copying the following text agreeing to not compete with Gaussian, into your message:
I am not actively developing applications for a competing software program, or for a project in collaboration with someone who is actively developing for a competing software program. I agree that Gaussian output cannot be provided to anyone actively developing for a competing software program. I agree to this statement.
Configuration and Default Settings
Peregrine currently has Gaussian09 Revision D.01 installed. Gaussian09 may be configured on Peregrine to run on one or more physical nodes, with or without shared memory parallelism. Distributed memory, parallel setup is taken care of automatically based on settings in the Moab/PBS script example below. The default parameters for G09 runs have been set to:
-#- CacheSize=163840 -M- 24GB -#- MaxDisk=128GB -P- 16
Batch Submission with Use of In-memory Filesystem (preferred method)
#!/bin/bash #PBS -l nodes=2:ppn=24 #PBS -l walltime=00:05:00 #PBS -q batch #PBS -N g09run #PBS -A account-id # Ensure script location if test -n "$PBS_O_WORKDIR"
then echo "PBS workdir set, so cd'ing --> $PBS_O_WORKDIR" cd $PBS_O_WORKDIR fi
# Load Gaussian module to set environment module load gaussian # Set script variables INPUT_BASENAME=G09configure_test INPUT_FILE=$INPUT_BASENAME.gjf GAUSSIAN_EXEC=g09
MEMSIZE=3GB SCRATCH=/scratch/$USER/gaussianScratch.$PBS_JOBID SCRATCH2=/dev/shm # # Check on editing input file. If scratch directories # are listed then file is used un-changed, if 3-line # header not present, then script prepends these lines # to the input file to be used in execution line # NUMRWFLINES=`grep "RWF" $INPUT_FILE |wc -l` if [ $NUMRWFLINES -eq 1 ]; then echo "standard file found" cp $INPUT_FILE infile else echo "prepending lines to input file" echo "%RWF=$SCRATCH2/,$MEMSIZE,$SCRATCH/,-1" > infile echo "%NoSave" >> infile echo "%Chk=test.chk" >> infile echo " " >> infile cat $INPUT_FILE >> infile fi # # Run gaussian Peregrine script (performs much of the Gaussian setup) g09_peregrine # # Set required Gaussian environment variables # if [ $PBS_NUM_NODES -gt 1 ] then export GAUSS_LFLAGS='-vv -opt "Tsnet.Node.lindarsharg: ssh"' export GAUSS_EXEDIR=$g09root/g09/linda-exe:$GAUSS_EXEDIR fi export GAUSS_SCRDIR=$SCRATCH2 # # Gaussian needs scratch directories # Note: sometimes files may have been left behind in # on-node memory by other jobs that terminated incorrectly # so clean these to make sure there is enough space. # if [ -d $SCRATCH ] then rm -rf $SCRATCH fi mkdir $SCRATCH rm -rf $SCRATCH2/* # Run Gaussian job $GAUSSIAN_EXEC < infile >& $INPUT_BASENAME.log rm infile
To submit a job with this script, one would type: