Gaussian

General Information

Versions and Platforms


Gaussian 16

Operating Environments:

Linux

Hardware

Linux Cluster, SuperMUC

Producer

Gaussian Inc. Pittsburgh, USA&

Overview of Functionality

Please see the following links for more information:

Usage conditions and Licensing

  • Gaussian may only be used for academic and teaching purposes; the license condition preclude using the software if you are directly or indirectly engaging in competition with GAUSSIAN.
  • All scientific articles based on the usage of Gaussian must contain suitable citations.
  • Gaussian software installed on LRZ HPC systems may only be used on these systems, and only after a user has obtained a group entry for the UNIX group "gaussian". Please contact LRZ HPC support to obtain such an entry, providing the account name.

How to operate the LRZ installations of Gaussian

Quite generally a number of releases of Gaussian may be available on any computing platform at any time. The modules package should be used to provide you with suitable environment settings for Gaussian.

module load gaussian

will provide you with the default version of Gaussian presently available. You can also load a specific version; a list of available versions is provided by the command

module apropos gaussian

(the module is in the applications class).

Loading the module will initialize environment variables needed for the operation of Gaussian as well as make suitable changes to your PATH variable so as to find the Gaussian commands.

Available Gaussian Commands

The following table gives an overview of all commands available in the Gaussian package.

Note: If any of the utilities gives you a segmentation fault at execution, please

  • check whether the input files were generated with the same version of Gaussian as the utility you are presently using,
  • issue the command
    ulimit -s unlimited
             (for sh, bash, ksh login shell) or
             limit stacksize unlimited
            
    (for csh, tcsh login shell) before running the utility.

Command name

Function

Remarks

g16 <input_file>

Starts Gaussian 16 with input_file.com

A Gaussian 16 module must be loaded

gau-machine

outputs architecture


gau-fsplit

splits *.f Fortran source code into component modules

Usually only needed for build of Gaussian

gau-cpp 

preprocesses *.F Fortran source code 

Usually only needed for build of Gaussian

c8609

Converts Gaussian 86,88,90,92,94,98,03 checkpoint file into a Gaussian 16 checkpoint file. 


chkchk

Displays the route and title sections from a checkpoint file. Useful for determining the contents of random checkpoint files whose purpose has been forgotten and whose names are non-descriptive. It takes the name of the checkpoint file as its argument.


chkmove

Convert a checkpoint file to or from formatted form. Arguments: chkmov [U/F] from.chk to.dat


cubegen

Gaussian offers a standalone utility for generating cubes from the data in a formatted checkpoint file. 


cubman 

This program manipulates density cubes as produced by Gaussian


formchk

Converts the data in a Gaussian 98 checkpoint file into a formatted form which is suitable for input into a variety of visualization software.


freqchk

This utility has two distinct modes of operations:

  • Retrieving frequency and thermochemistry data from a checkpoint file, with optional specification of an alternate temperature, pressure, scale factor, and/or isotope substitutions.

  • Preparing a molecule file and a script file for the HyperChem program which will enable you to animate vibrational modes predicted by Gaussian using HyperChem.


freqmem

Give the user an estimate of the minimum amount of memory (in mega-words) for full efficiency (i.e., one pass) or frequency calculations. Usage: freqmem number-atoms numr-basis-func r/u c/d sp/d 


gauopt 

performs an optimization by repeatedly executing Gaussian. In this way, any parameter in the input stream may be optimized. Input for gauopt consists of a template file, in which certain fields are replaced with variables whose values are to be optimized. 


ham506

This program generates averaged Hamiltonians in the format expected for link 506. 


mm 

Standalone Molecular Mechanics Program

Gaussian 03 only.

newzmat

This program converts molecular geometry specifications between different formats, as specified on the command line. 


testrt

This program takes a standard Gaussian 98 route as input and produces the equivalent nonstandard route. 


unfchk 

This utility is the opposite number to formchk. It converts a formatted checkpoint file to a binary checkpoint file, in a format appropriate to the local computer system.


Platform-specific Notes

Linux Cluster

  • Gaussian can use all processors of a SMP or NUMA shared memory node, or can run sequentially using 1 CPU of a serial processing node. If a SMP Job is submitted, it is necessary to specify the number of processors to be used in the Link 0 section of the input file, for example:

    %NProcshared=8
    
  • Please check out the job scripts (SGE / SLURM) below and select a suitable one depending on the system you intend to run on.

SuperMUC

  • On the fat nodes, up to 40 cores can be used; depending on the scalability of your particular problem you may need to specify a number smaller than 40 for %NProcshared in your input.

  • It is recommended to explicitly specify a %Mem entry in the Link 0 section of your input file since the default setting are so low that the program will often reduce the number of processors for parallel processing. You will need to experiment a bit to find the right setting for your problem, but 300-500 MByte (or 40-60 MWords) per core should be a good start.
  • On SuperMUC, you need to use a LoadLeveler job script; see below for an example script

Location of scratch directories

On the Linux systems, the scratch directory referenced in the variable $GAUSS_SCRDIR is generated dynamically below the $OPT_TMP directory via a mktemp issued with the load of the environment module.

Submission of Gaussian batch jobs

This section provides some example batch job scripts for use on the various HPC platforms at LRZ.

Linux Cluster

Serial processing using SLURM (only %NProc=1 setting allowed)

Serial shared memory job on the Cluster

#!/bin/bash
#SBATCH -o ./%x.%j.%N.out 
#SBATCH -D  ./
#SBATCH -J <job_name> 
#SBATCH --get-user-env 
#SBATCH --clusters=cm2_tiny
#SBATCH --partition=cm2_tiny
#SBATCH --nodes=1-1
#SBATCH --cpu-per-tasks=28
#SBATCH --mail-type=end #SBATCH --mail-user=<email_address>@<domain> #SBATCH --export=NONE #SBATCH --time=24:00:00
module load slurm_setup
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK module load gaussian g16 my_inputfile.com

Parallel processing (%NProc=16 or more) using SLURM
Note that a run time limit of 24 hours is specified in the examples.

CooLMUC2

MPP3 Cluster

#!/bin/bash
#SBATCH -J job_name
#SBATCH -o ./%x.%j.%N.out
#SBATCH -D ./
#SBATCH --get-user-env
#SBATCH --clusters=cm2_tiny
#SBATCH --partition=cm2_tiny
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=28
#SBATCH --mail-type=end
#SBATCH --mail-user=insert_your_email_here
#SBATCH --export=NONE
#SBATCH --time=08:00:00
  
module load slurm_setup

module load gaussian

g16 my_inputfile.com

# assumes at most 28 cores are used

#!/bin/bash
#SBATCH -J job_name
#SBATCH -o ./%x.%j.%N.out
#SBATCH -D ./
#SBATCH --get-user-env
#SBATCH --clusters=mpp3
#SBATCH --nodes=1-1
#SBATCH --cpus-per-task=64
# 256 is the maximum reasonable value for CooLMUC-3
#SBATCH --mail-type=end
#SBATCH --mail-user=insert_your_email_here
#SBATCH --export=NONE
#SBATCH --time=08:00:00
module load slurm_setup
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK

module load gaussian

# configure up to 16 threads in input file

g16 my_inputfile.com

Parallel processing on SuperMUC-NG using SLURM

#!/bin/bash 
# Job Name and Files (also --job-name)
#SBATCH -J jobname
#Output and error (also --output, --error):
#SBATCH -o ./%x.%j.out
#SBATCH -e ./%x.%j.err
#Initial working directory (also --chdir):
#SBATCH -D ./
#Notification and type
#SBATCH --mail-type=END
#SBATCH --mail-user=insert_your_email_here
# Wall clock limit:
#SBATCH --time=24:00:00
#SBATCH --no-requeue
#Setup of execution environment
#SBATCH --export=NONE
#SBATCH --get-user-env
#SBATCH --account=insert your_projectID_here
#SBATCH --partition=insert test, micro, general, large or fat
export KMP_AFFINITY="granularity=core,compact,verbose"
# check the above for performance impact
cd mydir
module load gaussian
g16 my_inputfile.com

Documentation

Gaussian Documentation on the World Wide Web

Support

The Leibniz Computing Center has the possibility of accessing Gaussian Inc. for support if there is any technical difficulty with the software. Please contact the LRZ HPC support group if you experience any problems with Gaussian or have any questions on the usage of this application.