Gaussian

Overview

Gaussian is a molecular chemistry modeling package open to members of the "gaussian-group" licensing group. Gaussian is available in CPU only and GPU-based builds on Matilda.

This document briefly provides guidance on using the CPU and GPU capabilities of Gaussian.

Gaussian CPU

The following Gaussian CPU-based installations are available through the Matilda HPC modules system:

  • Gaussian/g16-B01
  • Gaussian/g16-C01

There are two (2) places where CPU quantities should be specfied: inside your input file as a "link 0" command, and within your job script. Please ensure that the number of CPUs specified in your job script match the number specified in your link 0 command. For example, in your input file:

%mem=100gb
%CPU=0-39

The link 0 command above specifies a range of CPUs to use; here, 40 in total (for example on one of the compute nodes), and 100GB or RAM. CPUs can also be specified in list format. For example:

%mem=100gb
%CPU=0,1,2,3,4,5

In the case above, we specify processors 0,1,2,3,4, and 5 (6 total).

Our job script for the first example might look something like the following:

#====Sample Job Script===
#!/bin/bash
#SBATCH --job-name=myGaussian
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=40
#SBATCH --time=1-00:00:00
#SBATCH --mem=100gb

module load Gaussian/g16-C01

g16 myGaussRun.com

Please note that Gaussian cannot be run on Matilda in MPI (multi-node) mode. This requires the package "Linda 9" which we do not own nor have a license for.

Gaussian GPU

Gaussian GPU must be run on one of Matilda's GPU nodes, and this is accomplished by specifying GPU resources to consume within the job script. The version of Gaussian GPU currently available is:

  • Gaussian/g16-C01-gpu

Again, CPU and GPU requests between the input file and the job script should align. It is also recommended to specify which specific CPUs should control which GPUs. This is done with a link 0 command in the input file:

%mem=100gb
%CPU=0-3
%GpuCpu=0,1,2,3=0,2,1,3

In this case, we specify CPUs 0-3, and GPUs 0,1,2, and 3. GPUS 0,1,2,3 are controlled by CPUS 0,2,1,3, respectively. You may note the unusual ordering of the control CPUs relative to the GPUs. This has to do with CPU-GPU affinity. In general on Matilda's GPU nodes, GPUs 0 and 1 have an affinity for even-numbered CPUs, and GPUs 2 and 3 with odd-numbered CPUs, hence the ordering shown above. Please note that Matilda GPU nodes have a maximum of 4 GPUs per node.

Our job script for the example above will look something like the following:

#====Sample Job Script===
#!/bin/bash -login
#SBATCH --job-name=myGaussian
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=4
#SBATCH --gres=gpu:4
#SBATCH --time=1-00:00:00
#SBATCH --mem=100gb

module load Gaussian/g16-C01-gpu

g16 myGausRun.com

More Information

For more information on running Gaussian, please refer to the following:


CategoryHPC