MCSR_logo.jpg (56K)
Home My MCSR Supercomputers Software Research Education
Login
GAMESS @ MCSR:

Introduction
Using GAMESS on Mimisa
Using GAMESS on Sweetgum

Further Information:
Additions/Revisions to GAMESS
Inputs to GAMESS
Sample Input Files
Installing GAMESS on Mimosa
Further Documentation




Parallel-O-Gram
News

MCSR Accounts
Contact Us

Installing GAMESS on Mimosa
Getting the Source code

The Source code for the GAMESS installation package can be obtained from here. For Mimosa, we opted for the version suitable for linux and Intel 32-bit archtecture.

Once you submit the email address, upon verification (within a week), they give you a password to access their ftp server, their password changes every week.

Once the source code was obtained, we untarred it in /usr/local/apps/gamess using: "tar -xzvf gamess.tar.gz". The tarred file for June 2005 version resides in /usr/local/apps. Before you proceed, do read the installation directions @ gamess/misc/readme.unix


Source Code changes

The GAMESS installation package is made very generic; To be installed across multiple platforms and operating systems and also so that we can use the compilers we desire to build it.
Mimosa is a Beowulf Cluster of 32 bit processors running the LINUX operationg system. We decided to use the portland group of compilers to build GAMESS. Hence certain changes need to be made in the compilation scripts and also in the source code to reflect these choices. These changes were obtained from the Portland gourp website for help with compiling GAMESS In the instructions, certain line numbers at which changes are requested may be approximate but not accurate, so you will have to look around to find the exact location at which to make the changes.
Secondly while building GAMESS we encountered some issues that came in the way of a smooth compilation. This could be because something failed when trying to convert GAMESS from the generic form to the form specific to our purpose, we have also documented how we overcame those errors.

But first the changes in source as per portland group website. The location for all these files is "gamess/" which on mimosa is at "/usr/local/apps/gamess"

ddi/compddi

  • Line 17: set the "TARGET" to "liniux-pc".
  • Line 408,409: set "CC" to pgcc and the "CFLAGS" to "-DLINUX -fast -Mscalarsse -I./include". Remove "-Mscalarsse" for non-SSE enabled systems.
  • Line 412: Change to 1 underscore, "-D_UNDERSCORES=1".

compall

  • Line 15: set the "TARGET" to "linux-pc".
  • Line 16: replace the "/u1/mike/gamess" with the root directory of your GAMESS package.
  • Line 34: set "CCOMP" to "pgcc".
  • Note: You may need to explicitly set your PATH environment variable as well setenv PATH $PATH\:/usr/pgi/linux86/5.2/bin #Set to your path Add your compilation flags (ex "-fast -Mscalarsse") to the compilation of zunix (line 68). The actual option used should match the options you use in compiling the Fortran source (See below).

comp

  • Line 17: set the "TARGET" to "linux-pc".
  • Line 18: replace the "/u1/mike/gamess" with the root directory of your GAMESS package.
  • Line 47: If you wish to use a BLAS library, i.e. "-lblas", set "BLAS3=true".
  • Comment out lines 816 to 838 (g77 configuration)
  • Add the following under the Portland Group compiler section (line 842):
    if ($TARGET == linux-pc) then
            setenv PATH $PATH\:/usr/local/apps/pgi-5.2/pgi/linux86/5.2/bin
            set OPT = '-fast'  
            if ($MODULE == qeigen) then
                    mv qeigen.f qeigen.junk
                    sed -e "s/Q-/D-/g" \
                            -e "s/Q+00/D+00/g" \
                            -e "s/REAL\*16/DOUBLE PRECISION/" qeigen.junk > qeigen.f
                    rm -f qeigen.junk
            endif  
            set echo   # Compile in the object directory
            mv $MODULE.f object/$MODULE.f
            chdir object  
            pgf90 $OPT -Mfixed -c $MODULE.f
            chdir ../  
            unset echo
    endif
    
  • Be sure to change your path to the location of the PGI compilers.
  • Note that we have modified the script to build objects in the object directory to facilitate the use of IPA. At line 1245, the scripts attempts to copy the object file from the base directory to the object directory. Since the object file does not exist in the base directory, an error will be emitted. You can either comment out line 1246 or ignore the error.
  • Set your options as needed. We recommend using "-fast -Mscalarsse" for SSE2 enbled systems and "-fast" for non-SSE systems. See Known Issues for more information about known optimization issues. You can use either pgf77 or pgf90. Remove "-Mfixed" if you prefer pgf77.

lked

  • Line 17: set the "TARGET" to "linux-pc".
  • Line 18: replace the "/u1/mike/gamess" with the root directory of your GAMESS package.
  • Line 280: set the "LDR" to either pgf77 or pgf90.
  • Line 281: set the "LDOPTS" to the same options you used in the "comp" script and add "-lblas". We recommend using "-fast -Mscalarsse -lblas".
  • Line 300: Add the following two lines when using the "-lblas" library:
    set BLAS=' '                      # or set BLAS='blas.o' if BLAS3=false in comp
    
    set LIBRARIES=' '
  • You may also need to explicitly set your path to the compiler binaries: setenv PATH $PATH\:/usr/pgi/linux86/5.2/bin #Set to your path

rungms

  • Determine where your scratch directory is located. For our testing purposes, we created a "scr" directory in the local gamess directory. Set the "SCR" variable (line 38) to this directory. Note that this should be an absolute path. In the file assignment section, you should change files starting with "~/scr" to the actual directory location. For our tests, we used the local scr directory. You'll also need to set the "ERICFMT" path.
  • Line 260: Set the "GMSPATH" to the location of the gamess executable.

Additional Changes

These are some changes to the rungms file, beyond those specified by the Portland Group website
  • NETEXT : After a successful compilation, Initially GAMESS was failing to execute properly and kept returning an error: "GetHostbyName failed ... try again", the reason we had this error was because the rungms script was appending an extension ".myri" to all the nodes returned by PBS, but the nodes in Mimosa are not labeled is this manner. Hence locate the variable NETEXT in "rungms" and eliminate it and its contents ".myri" from the parameters to GAMESS. This can be done by replacing the contents of lines 406 and 414, viz:
    set HOSTLIST = ($HOSTLIST $MYNODE$spacer1$NSMPCPU$spacer2$NETEXT)
    by :            
    set HOSTLIST = ($HOSTLIST $MYNODE$spacer1$NSMPCPU)
    
    
  • SCR : The SCR variable points to a location that should be able to be accessed fast so as to store the binary files generated and used during the execution of GAMESS.We set this value to "/tmp" which is local to all the nodes.
  • PTMP : However GAMESS also generates text files that is more appropirately stored in the users local directory and which need to deleted before the next execution of GAMESS, these files are: "jobname.irc" and "jobname.dat". So we use the PTMP to find the location to store these two files, PTMP can be user specified in the arguments but by default it points to "/ptmp/$USER".


Building GAMESS

Instructions from the Portland Group website:

  1. Build the activate utility in the tools directory:
     
      cd tools 
      cp actvte.code actvte.f 
      vi actvte.f 
      :%s/^\*UNX/    / <--- 4 blanks between the strokes 
      :wq 
      pgf77 -o actvte.x actvte.f 
      rm actvte.f 
      cd ../
    
  2. Enter the "ddi" directory and type "./compddi". Copy "ddikick.x" to the main directory.
  3. Type "compall" in the main directory to compile the source.
  4. Compile the "zheev.f" file in the object directory with your options ("-c -fast -DLINUX" and more) plus "-Kieee" if using >= "-O2".
  5. Type "lked" from the command line to link the source.

Aditionally:

The compilation at step 4 takes quite a bit of time, after compilation if the linking at step 5 fails, with the error that "int2c.o" cannot be found, the reason is that the compilation of the file "int2c.f" failed. This file is in the "object" folder,
  • replace all occurances of "REAL*16" with "REAL*8" in this file.
  • Also there are a couple of other instances where numbers are represented for example as: 1.0Q+00, we think what was intended was an E(exponential), so when replaced all the occurances of Q with e only in those numbers and we had a successful compile. Note this file can be compiled individually as in step 4 above to get rid of the errors.


Last Modified:June 08, 2007 10:31:49.   Copyright © 1997-2012 The Mississippi Center for Supercomputing Research. All Rights Reserved.   The University of Mississippi
Valid RSS