| Academic Computing and Communications Center | ||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Gaussian 03 on Argo |
||
|
||
| What is Gaussian | ||
|
Gaussan provides electronic structure modeling. For more detailed informationsee the Gaussian web site. |
||
| To use Gaussian 03, you need: | ||
|
||
| C Login Shell | ||
|
Your login shell must be C. By default, all newly-created argo accounts use the bash shell (/bin/bash). To find out what shell you currently use:
If the answer to the above command is /bin/bash, then you are using bash. If it is /bin/csh, then you're using C. Client infomation including the name of your default shell is not kept locally on the argo system; instead it is kept in the ldap system and argo make calls to ldap to get the information. If you want your shell changed, send email to systems@uic.edu with the Subject line Argo - change my default shell to C. |
||
| .cshrc file | ||
|
A .cshrc file (the leading period is required as are the lowercase letters) in your home directory is required. If it doesn't exist, create it.
.Cshrc Wrong: the letter c following the required leading period is a capital letter .cshrc Correct
Warning: avoid using Windows/DOS utilities to cut and paste the above into your .cshrc file; they may add DOS-type carriage return/line feeds that are not the same as those in LINUX, thereby causing an error when you login. The permissions for the file should be 755:
To change the permissions, enter:
|
||
| Default.Route file | ||
|
It is recommended though not required that you have a copy of the Gaussian 03 system file in your home directory. Changes made to the copy in your home directory ($HOME/Default.Route) will take precedence over corresponding entries in the system copy ($g03root/g03/Default.Route). To get a copy which must be placed in your home directory:
cp -p /usr/common/g03/Default.Route $HOME The system defaults are:
The permissions for the file should be 755:
|
||
| .tsnet.config file | ||
|
Having a .tsnet.config in your home directory is is required.
It is your copy of the Linda global system To get a copy which must be placed in your home directory:
The permissions for the file should be 644:
Common mistakes regrding the name of the file:
and not .tsnet.config.model
Common mistakes regarding changing the content of the file:
One of the parameters in the file, Tsnet.Appl.nodelist, (see arrow) identifies to Gaussian/Linda all nodes that are eligible to run your program: ![]() However, the torque system which is responsible for assigning nodes to your job may select one of the nodes you removed. But, by removing the named node from the file, you've told Gaussian it no longer exists. Torque assigns a node that Gaussian doesn't know about. As a result, your job will not run. Unless you know the ramifications of your changes, it's best not to edit the .tsnet.config file. |
||
| Subg03 script | ||
|
The subg03 is used to execute your Gaussian job. To get a copy of the generic script:
There are no more than two lines that you should change; they are at the beginning and follow the line # Users should change the next two lines.: ![]() Of the two lines, only the set input is should be changed for each new run. set input = line in subg03
The only requirement is the filename MUST have as its last three characters .in. If the name does not end with .in, use the Linux mv command to rename the file. For example, your input file is named mydata:
The input filename, mydata.in, is placed after the equal sign in the set input line of the subg03 script:
The location of your input file is defined in the third line:
|
||
| Requesting multiple nodes and multiple processors per node | ||
|
For most jobs running on argo, all you have to do to request multiple nodes and multiple processors is to include the -l nodes=X and the :ppn=Y specifications on the qsub command. However, there is a additional requirement for Gaussian jobs: you must include both the %NProcLinda= and %NProcShared= keywords in your input file:
%NProcShared=
%NProcShared=Y |
||
| Work files - Handling and Location | ||
|
There are several work files that are used in the course of a g03 computation:
The files all have the same name; it is the file extension that identifies the type. By default, these files are given a name that appends the job process ID to the characters Gau-. For example, the following all have the name Gau-13089:
-rw-r--r-- 1 jsmith student 21037056 Feb 14 11:48 Gau-13089.rwf
-rw-r--r-- 1 jsmith student 5107056 Feb 14 11:48 Gau-13089.chk
-rw-r--r-- 1 jsmith student 0 Feb 14 11:47 Gau-13089.int
-rw-r--r-- 1 jsmith student 0 Feb 14 11:47 Gau-13089.d2e
-rw-r--r-- 1 jsmith student 524288 Feb 14 11:48 Gau-13089.scr
If your job completes successfully, then the subg03 script will delete the files. If you want to retain the files, then comment out the following lines in your subg03 script file:
tail -l $job.out
set exits = `tail -1 $job.out | cut -d' ' -f 2,3`
if ( "$exits" == "Normal termination" ) then
echo "Normal termination - erasing: "%JOB%.rwf %JOB%.chk %JOB%.int %JOB%.2de JOB%.src
rm -f %JOB%.rwf; rm -f %JOB%.chk; rm -f %JOB%.int; rm -f %JOB%.2de; rm -f %JOB%.src
endif
One of the reasons to keep the files is that they may be used with GaussView.
However, the files
will use excessive disk space. Retain only those files that are necessary.
You may override the default location and place all of the files in some other directory via the environmental variable GAUSS_SCRDIR. For example, to tell Gaussian to locate them in your scratch directory (/scratch/yournetid), enter the following command at the LINUX prompt:
As a result, all subsequent runs during the current login session will place
the files in your scratch directory. To make this change permanent, enter the
command in your .cshrc file: ![]() If, instead, you wish to relocate one or more of the individual files, this is done by a statement in your input file. For example, if you want to place the rwf file in your scratch directory but leave the remaining files in your home, then you would do two things. First, you would undo any global change made via the setenv statement. Two, you would include the following in your input file:
As a result, the Read_Write file is written to scratch while the other files are written to your home directory. Notice, that you must hardcode your netid into the statement; using the environmental variable $USER will not work. If you want to relocate a file as well as use a different name, include the new name after the path:
The system will append the appropriate extension; in this example, rwf. Argo is a 32-bit machine. No file may be no larger than 2GB. If any of your scratch files will exceed 2GB, then you must "break up" the file into multiple pieces with each piece no larger than 2GB. What follows is the generic syntax to do this:
The format also applies to the Integral file and/or the Derivative file. Obviously, for those files, the rwf would be changed to the appropriate extension. What follows is an example of how to partition the rwf file into two separate pieces in the scratch filesystem:
Several things need to be addressed:
You are limited to a maximum of 8 partitions (approximately 16GB). One of the advantages of using the scratch system is that it has a substantial amount of space. However, there is a performance penalty for using scratch, which is an NFS-mounted filesystem. If your rwf file is less than 5GB, you may use the /tmp filesystem on the supervisor node running your Gaussian job. To do that (the rwf file will again be used for example purposes):
This will partition the file into two 1.9 GB pieces on the supervisor node. The supervisor node is the first one listed when you display your job status using the qstat -an statement. qstat -an
520.argo.cc.uic user4 scali_ex job4.pbs 8512 4 -- -- -- R 19:50
argo1-3/1+argo1-4/1+argo1-2/1+argo1-1/1
place both partitions (piece1 and piece2) in the /tmp filesystem on argo1-3 (the supervisor node)
|
||
| Starting your Gaussian job | ||
|
The commands to execute a Gaussian job are in the file subg03. To run the job, enter:
DO NOT do the following:
![]() |
||
| Warnings and Problems | ||
the problem is one of the nodes on which you were running your job has crashed.
the problem is that the job has lost communication with one of the nodes on which you were running your job. The specification of the two files in the above input file does not include the path to the file; only the name has been included. That is incorrect. The specificatin MUST both the path to and the name of the file. Examples of properly path files:
%Chk=/scratch/jsmith/myrun.chk In the first example, the path is /home/homes50/jsmith/ and the name of the file is myrun.chk. In the second example, the path is /scratch/jsmith/ and the name of the file is myrun.chk.
Wrong: %Chk=/scratch/$USER/myrun.chk |
||
| Additional Help | ||
|
|
||
| 2011-10-1 ACCC Systems Group |
|