Gaussian03

Gaussian is a software application used for electronic structure modeling. In order to run Gaussian03 on HPC, you must be a part of the ‘g03′ UNIX group.  Request to be added to this group by sending an email to hpc@usc.edu.

Setting Up Gaussian03

Before running Gaussian03, you should set up your environment with the following command.

If you are using the (t)csh shell, enter:

If (-e /usr/usc/gaussian/g03-B05/setup.csh) then
source /usr/usc/gaussian/g03-B05/setup.csh
endif

If you are using the bash shell, enter:

if [-e “/usr/usc/Gaussian/g03-B05/setup.sh ]; then
source /usr/usc/Gaussian/g03-B05/setup.sh
fi

This command can be placed to be in your .login or .profile as well.

Running Gaussian03

To run the scalar version of Gaussian03, use the command g03. To run the parallel, also known as Linda, version of Gaussian03, use the g03l command. Please note that the last character in the g031 command is a lowercase ‘L.’

While using the parallel version of Gaussian03, you will need to specify the number of processors to be used in the ‘%nproc’ as a link 0 command in your Gaussian program. The following should be the first few lines of your Gaussian input file:

%chk=/scratch/test.chk
%mem=80MW
%NProcShared=2
%NProcLinda=4

Note: The %NProc options listed above makes Linda utilize four nodes and two processes in each node.

Users are not required to manually source the Portland Group (PGI) compiler’s setup file. If you need a particular version of a PGI compiler, then you will need to source that PGI compiler’s setup file before sourcing Gaussian03’s setup file. You should not override the following variables’ default values: PGI, PGIDIR, GAUSS_SCRDIR, and GUASS_LFLAGS.

The following is a sample PBS script file for running Gaussian03 programs.

#!/bin/csh

#** The "#PBS" lines must come before any
##** non-blank non-comment lines ***

##**PBS -l walltime=1:00:00,nodes=1:ppn=4
##**For almaak remove comments on the above line
##**and comment out the line below

#PBS -l walltime=1:00:00,nodes=2:ppn=2

#The following should contain your program and any arguments
set inputfile  = "./test.com"         # G03 Input file

set outputfile = "test.out"           # G03 Output file

if ($?PBS_JOBID) then          # if this is a PBS job
echo "Starting" $PBS_JOBID `date`
echo "Initiated on `hostname`"
echo ""
cd "$PBS_O_WORKDIR" || exit 1         # connect to working directory of qsub<
cp -v $inputfile /scratch/ || exit 1  # Copy the input file to /scratch
# if you run on the linux cluster<
cd /scratch || exit 1
else
echo "This script must be run as a PBS job"
exit 1
endif

if ($?PBS_NODEFILE) then
#count the number of processors assigned by PBS
set NP = `wc -l < $PBS_NODEFILE `
echo "Running on $NP processors: "`cat $PBS_NODEFILE`
else
echo "This job did not have the number of nodes specified with"
echo "the node= resource"
exit 1
endif

# run the program on the linux cluster using Linda
g03l < `basename $inputfile` > `basename $outputfile`
set ret = $?
## For almaak use the following line and comment out the previous line
## g03 < $inputfile >& $outputfile

cp -v /scratch/* $PBS_O_WORKDIR      # Copy all the output and temp files
                                     ## from /scratch to home directory
echo "Done   " `date
exit $ret

Getting Help

To learn more about PBS, please refer to the Running a Job on HPC Using PBS page. To get assistance with using Gaussian03 on HPC, please send an email to hpc@usc.edu.