Gaussian¶
Gaussian is an electronic structure program, starting from the fundamental laws of quantum mechanics, Gaussian predicts the energies, molecular structures, vibrational frequencies and molecular properties of molecules and reactions in a wide variety of chemical environments.
Gaussian is available as a module on Apocrita.
Usage¶
To run the default installed version of Gaussian, simply load the gaussian
module:
module load gaussian
then run Gaussian, depending on the version the binary will be named differently:
# Gaussian g09_D01
g09 < input-file > output_file
# Gaussian g16
g16 < input-file > output_file
Gaussian Licensing
QMUL have a cluster licence for Gaussian installed on Apocrita, this licence only allows use by QMUL employees.
QMUL have a licence for GaussView, requests for this must go via the IT Services Helpdesk.
Core Usage
When the Gaussian module is loaded in a job, it will automatically set
GAUSS_PDEF
(for Gaussian g09_D01) or GAUSS_CDEF
(for Gaussian g16) to
the value of SGE_BINDING
, which contains a list of the CPU cores bound
to the job. These variables ensure that Gaussian will only use the cores
requested by the job script.
Note that any core settings on the command line or in the input file will override this.
Please be aware that if you use the nproc
option, this must use the
value of NSLOTS
(number of cores requested by the job script), to avoid
overloading the compute nodes.
Segmentation violations¶
If Gaussian returns a Segmentation Violation then you may need to give it more memory. Memory for Gaussian is specified in two places, the job script and the .com file:
Job script:
#$ -pe smp 4
#$ -l h_vmem=2G
.com file:
%mem=6GB
The %mem request must be 1-4G less than the h_vmem request
Gaussian uses about 1-4GB already so the memory stated in the .com
file
must be less than the SGE request.
If your jobs run out of memory try setting %mem
to a lower value.
It's important to note that whilst the job script h_vmem
is multiplied by
number of cores, the .com
file is not and the full value must be specified.
Example jobs¶
Serial job¶
Here is an example job running on 4 cores.
#!/bin/bash
#$ -cwd
#$ -j y
#$ -pe smp 4
#$ -l h_rt=1:0:0
#$ -l h_vmem=2G
module load gaussian
g16 < input-file > output_file