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 firstname.lastname@example.org.
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.
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 #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 = $? ## 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