GAMESS

The General Atomic and Molecular Electronic Structure System (GAMESS) is a general ab initio quantum chemistry package.

NOTE: GAMESS has been modified at the University of Michigan to run better on OpenMPI HPC clusters. This results in a change to the command line arguments that you use to run GAMESS, making them different from what is documented in the GAMESS manual. See below for details.

The GAMESS web site is http://www.msg.ameslab.gov/gamess/.

GAMESS documentation is available on the GAMESS web site as well as in the directory /home/software/rhel6/lsa/GAMESS/20120501/gamess and consists of the following files:

   INTRO.DOC - Overview
   INPUT.DOC - Input Description
   TESTS.DOC - Input Examples
   REFS.DOC  - Further Information
   PROG.DOC  - Programmer's Reference
   IRON.DOC  - Hardware Specifics

Availability

GAMESS is currently available on both Flux and Nyx.

Accessing GAMESS

GAMESS is part of the LSA contributed software library. To use it, you must first load the lsa module, then the GAMESS module.

You can either load the lsa module separately, as in

$ module load lsa
$ module load GAMESS

or together, as in

$ module load lsa GAMESS

Running GAMESS by hand

Since GAMESS can generate multiple output files, we recommend that you have a separate subdirectory for each gamess analysis. For this example, we'll do our work in a subdirectory named gamess-test.

$ cd $HOME
$ mkdir gamess-test
$ cd gamess-test

For the purposes of this demonstration, we'll run the first example provided as a part of the GAMESS software, as described in the documentation TESTS.DOC. You can either copy the file to your subdirectory, like this:

$ cp /home/software/rhel6/lsa/GAMESS/20120501/gamess/tests/standard/exam01.inp $HOME/gamess-test/exam01.inp

Or you can create a file named exam01.inp containing the following lines:

! EXAM01.
!    1-A-1 CH2    RHF geometry optimization using GAMESS.
!
 $CONTRL SCFTYP=RHF RUNTYP=OPTIMIZE COORD=ZMT NZVAR=0 $END
 $SYSTEM TIMLIM=1 $END
 $STATPT OPTTOL=1.0E-5  $END
 $BASIS  GBASIS=STO NGAUSS=2 $END
 $GUESS  GUESS=HUCKEL $END
 $DATA
Methylene...1-A-1 state...RHF/STO-2G
Cnv  2

C
H  1 rCH
H  1 rCH  2 aHCH

rCH=1.09
aHCH=110.0
 $END

You will also need to create a scratch directory for GAMESS to use for its temporary files:

$ mkdir temp

You can run GAMESS using a command of the form "rungms JOB_FILE VERSION SCRATCH_DIR". Note that the job file name argument to rungms should be given without the ".inp" extension. For our demonstration, run:

$ rungms exam01 01 $HOME/gamess-test/temp

The results will be in the file exam01.dat. Note that you will need to rename or remove this file before you will be able to run this GAMESS job again.

When you run GAMESS by hand on Flux, it will use only a single processor core (it will run as a serial job). To utilize multiple cores (that is, to run it as a parallel job), run GAMESS from PBS as described below.

As always, please be sure to not run long or intensive jobs on the cluster head node, as this can cause problems for other users. For anything other than quick tests, please run GAMESS from PBS as described below.

Running GAMESS from PBS

If you ran GAMESS by hand, as described above, then remove the output file so we can run this job again from PBS:

$ rm -f exam01.dat

If you did not run GAMESS by hand, as described above, then create the subdirectory and input file that will be used for this demonstration:

$ cd $HOME
$ mkdir gamess-test
$ cd gamess-test
$ cp /home/software/rhel6/lsa/GAMESS/20120501/gamess/tests/standard/exam01.inp $HOME/gamess-test/exam01.inp

Create the following PBS file in the gamess-test directory, naming the file test.pbs, and changing example_flux to the name of your Flux allocation in both places it occurs (in the "#PBS -A" line and also in the path to the scratch directory in the rungms line. Also change your-uniqname@umich.edu to your email address.

#!/bin/sh

####  PBS preamble:

#PBS -N gamess_test
#PBS -M your-uniqname@umich.edu
#PBS -m abe 

#PBS -l procs=2,mem=1gb,walltime=00:05:00
#PBS -j oe 
#PBS -V

#PBS -A example_flux
#PBS -q flux
#PBS -l qos=flux

####  End PBS preamble

#  Show list of CPUs you ran on, if you're running under PBS
if [ -n "$PBS_NODEFILE" ]; then cat $PBS_NODEFILE; fi

#  Change to the directory you submitted from
if [ -n "$PBS_O_WORKDIR" ]; then cd $PBS_O_WORKDIR; fi

#  Put your job commands here:
rungms exam01 01 /scratch/example_flux/$USER

Note that we're providing GAMESS with a scratch directory in the high-speed /scratch filesystem. GAMESS will create a sub-directory there with the same name as the PBS job id.

To submit the job, run
$ qsub test.pbs

Limitations

GAMESS creates a static table for coordinating communications among its processes. Currently, this table is sized for a maximum of 125 nodes with a maximum of 40 cores/node, but these numbers can be increased if needed; contact flux-support@umich.edu to request an increase.

Additional information

Additional information is available on the GAMESS web site is http://www.msg.ameslab.gov/gamess/. For any Flux-specific assistance running GAMESS, contact flux-support@umich.edu.