Technical Support Information
Last update: 26 September 2006

Running Gaussian 03 on the Cray XD1

This document describes the additional installation steps required to run Gaussian 03 and Linda on the Cray XD1. It assumes that:

  • You have already installed and built Gaussian 03 as described in the G03 installation instructions (as applicable for source or binary).
  • You have already installed Linda as described in the Linda installation instructions.
  • You have modified your .login file as directed in the G03 and Linda instructions on the master node and on each node which you will use as a worker.

Modify the linda_rsh Script

The linda_rsh script controls how worker processes get started when a parallel Gaussian03 job is run. It is located in the directory $g03root/g03/linda7.1/opteron-linux-I8/bin. It needs to be modified for the XD1 environment. You will need to manually add the lines in green below just prior to the existing line case “$dbgname” in:

### Set up nodes on Cray XD1 ### 
if [ -f /opt/gridengine/bin/lx24-amd64/qrsh && -f $TMPDIR/machines ]
then
echo "exe: /opt/gridengine/bin/lx24-amd64/qrsh -inherit $host $user \"$@\""
exec /opt/gridengine/bin/lx24-amd64/qrsh -inherit $host $user "$@"
exit 1
fi
case "$dbgname" in 
gdb) lcmd=$1; shift

Sample Script for Running Gaussian

Here is a sample C shell script suitable for running Gaussian 03 in parallel on the XD1. This uses the PBS facility, the default under Cray-OS 1.2 (SuSE 9). Note that it requires that your .login file be setup as described in the installation instruction documents.

#!/bin/csh -X 
PBS –l nodes=3:ppn=2#excl                    # run on 3 dual processor nodes.
cd work-directory                                # Set to directory containing Gaussian input file.
set name=filename                               # Set to the name of the input file.
set inp=${name}.inp; set out=${name}.xd1 
# get unique nodes (PBS)                     
set allNodes=`cat $PBS_NODEFILE`

set nodes=""
foreach node ($allNodes)
@ isOld = 0 foreach unode ($nodes) if ($unode == $node) then @ isOld = 1 endif end if ($isOld == "0") then set nodes = "$nodes $node" endif end
setenv GAUSS_LFLAGS "-nodelist '$nodes'"
setenv GAUSS_SCRDIR /tmp 
/usr/bin/time -p ${g03root}/g03/g03l < ${inp} >& ${out} 

Submitting Jobs to a Queue

Assuming that you have named your version of the preceding script run_g03.csh, then you can use a qsub command like the following to submit a job using it:

% qsub /path/run_g03.csh

where path is the directory holding the submission script, and queue-name is the name of the queue to which you wish to submit the job.