G09 Submission

Gaussian 09 + Linda

In order to use Gaussian, you must first be added to the Gaussian group. You must contact ITS-Research Services (research-computing@uiowa.edu) in order to be added to the Gaussian group.

Gaussian license clarification

Thank you for your e-mail. In response to your first point, although our license agreement does not explicitly permit use of the software by collaborators of a given site, it is our intention that access to the software may be provided to collaborators - yet only while they are physically at the licensed site/campus (in other words, remote access to the software by collaborators is not permitted). If the collaborator wishes to install/useGaussian at his or her own site, then they would need to obtain a license for that site. 

Secondly, the defining point of academic use as far as we are concerned is that all results of the academic research are publishable in the open literature. That being said, our academic license does not intend to prevent academic institutions from accepting money from government or commercial entities to fund research projects. If an outside entity funds the research, but again, all the results are publishable in the open literature and are not considered proprietary, then this use is acceptable. However, if the research is being done for the commercial site (an arrangement that one might call "consulting"), then we would consider this non-academic use. So you are aware, we have very recently added language to our academic license agreement which clarifies what we mean by academic use, which is as follows:

For the purposes of this LICENSE, academic research means use and research which is not confidential and/or proprietary, and the results of which may be published immediately in the public domain without restriction. 

I hope this information is helpful. If you have any further questions, please feel free to contact me. Thank you again.

With best regards,

Amy

Amy Crusberg
Customer Service Manager
Gaussian, Inc.
custserv@gaussian.com

Gaussian scripts must be submitted to SGE with a wrapper script. You are encouraged to use this script, as SGE has to pass information to Linda upon submission. The job submission script is at the end of this document.

Remember to load a gaussian environment module before submitting jobs.

For example:

module load g09/B.01

To submit a Gaussian job, a copy of the script and your *.com file should exist in the same directory alone. This is a precaution against Gaussian accidentally deleting any of your files. Once the script and the job are in the same directory, the instances of CHANGE_ME in the script have to be changed to the part of the name of the job script before ".com" . Your job must end in .com to work with this script.
Then run the appropriate qsub command, which is dependent on which the type of job you are submitting.

For a serial job

(if you have named the submission script "g09sub")

qsub g09sub
For a single machine SMP job

The following must be in the link0 section in your Gaussian .com file.

%NProcShared=<number of cores>

You should replace <number of cores> with the desired number of cores in the node (matching your job's -pe gaussian-sm entry), and execute:

(if you have named the submission script "g09sub")

qsub -pe gaussian-sm <number of cores> g09sub
For a linda job

There are parallel environments for Linda usage that are setup to request whole nodes. The names are of the following form:

gaussian_linda#SLOTS#

where #SLOTS# is one of 16, 24, 32 for Neon and 56 for Argon, to refflect the total number of job slot on the node.

The following is an example, using a 16 core node, of what must be in the link0 section of your Gaussian .com file (at the very least, at the top).

%LindaWorkers=LINDA
%NProcShared=16

For the job submission, replace the argument after gaussian-linda with a multiple of 16, then execute:
(if you have named the submission script "g09sub")
The number should reflect the total number of cores you want as a multiple of 16.

qsub -pe gaussian_linda16 <number of cores> g09sub


Linda output

Linda's output can seem confusing. In the following example, two nodes will be utilized by linda, with 12 cores per node. The hosts that are running the job are compute-13-367 and compute-13-369.

%LindaWorkers=compute-13-367,compute-13-369
SetLPE: input flags=""
SetLPE: new flags=" -nodelist 'compute-13-367.local compute-13-369.local'"
Will use up to 2 processors via Linda.
%NProcShared=12
Will use up to 12 processors via shared memory.
This is the submission script for Gaussian09.
#!/bin/bash
#$ -S /bin/bash
#$ -j y
#$ -cwd
#$ -V
#$ -N CHANGE_ME

### The below variable should not include the .com ending of you gaussian input file,
### just the name before that.

FILENAME=CHANGE_ME

### Make sure that both the CHANGE_ME by the FILENAME= and the CHANGE_ME 3 lines above
### in the '#$ -N CHANGE_ME' line match, or your script error will be named strangely.

###                                !!!!!!!!!
###
### Only uncomment the following GAUSS_SCRDIR line if you give it an argument.
### It will default to /nfsscratch/Users/$USER if left commented. If blank and not commented out,
### it will spew files into your home directory, and possibly delete things.

#GAUSS_SCRDIR=


### This script and your FILENAME input file should be in a separate
### directory to avoid accidental deletion of files.
###
### You should not need to edit anything after here.
#######################################################################################

echo ----------------------------------------------------------------
echo Starting Job on `hostname` at `date +%a\ %D\ %r`
echo ----------------------------------------------------------------

echo Working directory: $SGE_O_WORKDIR
echo Filename: $FILENAME
echo Central node: `hostname -s`
echo Job ID: $JOB_ID
echo Scratch directory: $GAUSS_SCRDIR

LINDA=$(cat $PE_HOSTFILE |cut -f1 -d .|tr '\n' ',' | sed 's/,$//')
echo Host list: $LINDA

sed s/LINDA/$LINDA/ $FILENAME.com|g09 &> $FILENAME.out

if [ $? = '0' ]; then
	echo ''
else
	echo Something is wrong, check the .out file.
fi

echo ---------------------------------------------------------------
echo Job finished on `hostname` at `date +%a\ %D\ %r`
echo ---------------------------------------------------------------