BYU

Office of Research Computing

Gaussian 16

Gaussian 16 This documentation is old--we strongly suggest using gbatch instead:

module load g16 gbatch
gbatch --help
man gbatch

Access to the Gaussian 16 software is restricted to members of the gaussianusers group. If you need access, please contact a manager of that group. If you don't know the manager for the group then open a support ticket.

Versioning is done through modules.

# show available versions:
module spider g16

# or just load the default
module load g16

Once it is loaded, you can run Gaussian by providing the name of the input file without the file extension. For instance, if you had a file named either h2.com or h2.gjf in the current working directory then you could launch it like so:

g16 h2

We've created gbatch to make using Gaussian much easier--run module load gbatch; man gbatch to learn about what it does.

CPU Features

The current default version of g16 is an AVX2 build, which means it cannot run on all of our hardware but in exchange it should run better on the remaining hardware. This means you need to add the avx2 feature to your Slurm flags. For instance, inside of a job script you might already have -C rhel7, so you would need to add `&avx2:

#SBATCH -C 'rhel7&avx2'

If you don't have any -C features, then -C avx2 is fine.

If you get an "illegal instruction" error, then this is probably the issue.

Processors

Thus far we haven't seen a reduction in walltime when using more than one node for Gaussian jobs using Linda. Accordingly, we recommend requesting a single task and using Slurms --cpus-per-task option to get more CPUs. For example, this will get 1 task with 8 cores:

#SBATCH --ntasks=1 --cpus-per-task=8

You can also ask for an entire compute node like so:

#SBATCH --ntasks=1 --exclusive 

Gaussian 16 has deprecated NProcShared and instead wants you to use CPU instead, which tells g16 which cores it should use, not just the number of cores. Since this can only be known at job runtime, we recommend providing it as a command line parameter:

# from inside of a job
module load g16

cores=$(awk -F: '$2 == "cpuset" { system("cat " "/cgroup/cpuset/" $3 "/cpuset.cpus")  }' /proc/self/cgroup)
g16 -c="$cores" $name

This has the advantage that it won't get out of sync with what your job requests. If you request 4 cores, this will use 4 cores; if you request 28 cores, this will have 28 cores.

GaussView

GaussView is the graphical user interface (GUI) for Gaussian. Many users experience different problems with GaussView, as it is a complicated and at times difficult package to use. If using GaussView for a class, we recommend users ask their professor or TA for help using GuassView first. Otherwise, users experiencing issues with GaussView should open a ticket with our support team.

If you are having trouble with GaussView starting, with errors about X11 or "OpenGL is not available", or if you are on a Mac and the GaussView window does not display properly, please try to type the command below before invoking GaussView on the interactive node:

export USE_MESAGL=1