Building GAMESS on Sol (fully manual)
GAMESS can be compiled on Sol without any special permissions. You can build it entirely start-to-finish as your own unprivileged supercomputer user.
The steps outlined in this page compile GAMESS 2022r2, though the scripts are not limited to only this version. However, to change either the GAMESS versions (older or newer) may warrant changes this tutorial cannot anticipate.
It is recommended to complete this tutorial with the unchanged files to familiarize yourself with the process and the steps involved.
Setting up the Compilation Process
We first need to configure GAMESS to use the desired compiler and functionality. Using ./config
, we can initiate the configuration process. As the instructions state, it is valuable to have two terminals open: one for the configuration walkthrough and another to discover/validate filepaths to compilers, etc.
At the end of the process, install.info
will be generated. This file can be used directly (in place of running the configuration) or it can be used as a reference for each of the prompts in the configuration itself. Here is a working configuration for Sol using the Intel Compilers.
At least the following paths should be updated to reflect the path of the GAMESS source, which you might place in your $HOME or scratch directories.
setenv GMS_PATH /packages/apps/gamess/2022r2
setenv GMS_BUILD_DIR /packages/apps/gamess/2022r2
$ cat install.info
#!/bin/csh -f
# Compilation configuration for GAMESS
# Generated on c010.sol.rc.asu.edu
# Generated at Tue Mar 12 07:31:04 MST 2024
# GAMESS Paths #
setenv GMS_PATH /packages/apps/gamess/2022r2
setenv GMS_BUILD_DIR /packages/apps/gamess/2022r2
# Machine Type #
setenv GMS_TARGET linux64
setenv GMS_HPC_SYSTEM_TARGET generic
# FORTRAN Compiler Setup #
setenv GMS_FORTRAN ifort
setenv GMS_IFORT_VERNO 19
# Mathematical Library Setup #
setenv GMS_MATHLIB mkl
setenv GMS_MATHLIB_PATH /packages/apps/intel/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64
setenv GMS_MKL_VERNO 12
setenv GMS_LAPACK_LINK_LINE ""
# parallel message passing model setup
setenv GMS_DDI_COMM mpi
setenv GMS_MPI_LIB impi
setenv GMS_MPI_PATH /packages/apps/intel/compilers_and_libraries_2020.4.304/linux/mpi/intel64
# Michigan State University Coupled Cluster #
setenv GMS_MSUCC false
# LIBCCHEM CPU/GPU Code Interface #
setenv GMS_LIBCCHEM false
# Intel Xeon Phi Build: none/knc/knl #
setenv GMS_PHI none
# Shared Memory Type: sysv/posix #
setenv GMS_SHMTYPE sysv
# GAMESS OpenMP support: true/false #
setenv GMS_OPENMP false
# GAMESS LibXC library: true/false #
setenv GMS_LIBXC true
# GAMESS MDI library: true/false #
setenv GMS_MDI false
# VM2 library: true/false #
setenv GMS_VM2 false
# Tinker: true/false #
setenv TINKER false
# VB2000: true/false #
setenv VB2000 false
# XMVB: true/false #
setenv XMVB false
# NEO: true/false #
setenv NEO false
# NBO: true/false #
setenv NBO false
####################################################
# Added any additional environmental variables or #
# module loads below if needed. #
####################################################
# Capture floating-point exceptions #
#setenv GMS_FPE_FLAGS '-fpe0'
setenv GMS_FPE_FLAGS ''
Modifying rungms
for Use
rungms
contains all the run-time elements of engaging MPI and other components to ensure GAMESS efficiently uses all the resources allocated for it. The basic rungms
file contains logic to handle all interconnects, alternative options like using SSH, and other highly-hardware-dependent functionality.
For simplicity, the following rungms
has been stripped down for Intel MPI only.
As before, the required changes to configuration are found at the top of the file:
set TARGET=mpi
set SCR=/scratch/$USER/gamess/scr
set USERSCR=/scratch/$USER/gamess/restart
set GMSPATH=/packages/apps/gamess/2022r2
Running GAMESS
You can now run GAMESS with the compiled binary. Unless you have chosen differently, the file will be named 00
, so rungms 00 ...
Enter the directory with .inp files
/path/to/rungms 00 ....