Skip to content

Gaussian

Introduction

Gaussian provides state-of-the-art capabilities for electronic structure modeling. Gaussian provides a wide-ranging suite of the most advanced modeling capabilities available. Starting from the fundamental laws of quantum mechanics, Gaussian predicts the energies, molecular structures, vibrational frequencies, and molecular properties of compounds and reactions in a wide variety of chemical environments. Gaussians models can be applied to both stable species and compounds that are difficult or impossible to observe experimentally.

For more information, see the official webpage.

License

Gaussian software package is available to all users that are not in direct or indirect competition with the Gaussian Inc. company and have a valid AUP with the IT4Innovations National Supercomputing Center. The license includes GPU support and Linda parallel environment for Gaussian multi-node parallel execution.

Note

You need to be a member of the gaussian group. Contact support@it4i.cz in order to get included in the gaussian group.

Check your group membership:

$ id
uid=1000(user) gid=1000(user) groups=1000(user),1234(open-0-0),7310(gaussian)

Installed Version

Gaussian is available on Salomon, Barbora, and DGX-2 systems in the latest version Gaussian 16 rev. c0.

Module CPU support GPU support Parallelization Note
Gaussian/16_rev_c0-binary AVX2 Yes SMP Binary distribution
Gaussian/16_rev_c0-binary-Linda AVX2 Yes SMP + Linda Binary distribution
Gaussian/16_rev_c0-CascadeLake AVX-512 No SMP IT4I compiled
Gaussian/16_rev_c0-CascadeLake-Linda AVX-512 No SMP + Linda IT4I compiled

Speedup may be observed on Barbora supercomputer when using the CascadeLake module compared to the binary module.

Running

Gaussian is compiled for single node parallel execution as well as multi-node parallel execution using Linda. GPU support for V100 cards is available on Barbora and DGX-2.

Note

By default, the execution is single-core, single node, without GPU acceleration.

Shared-Memory Multiprocessor Parallel Execution (Single Node)

Load module

$ ml Gaussian/16_rev_c0-binary

In the input file Link0 header section, set the CPU cores (24 for Salomon, 36 for Barbora, 48 for DGX-2) and memory amount.

%CPU=0-35
%Mem=8GB

Cluster/Network Parallel Execution (Multi Node)

Load Linda-enabled module

$ ml Gaussian/16_rev_c0-binary-Linda

The network parallelization environment is Linda. In the input file Link0 header section, set the CPU cores (24 for Salomon, 36 for Barbora, 48 for DGX-2) and memory amount. Include the %UseSSH keyword, as well. This enables Linda to spawn parallel workers.

%CPU=0-35
%Mem=8GB
%UseSSH

The number and placement of Linda workers may be controlled by %LindaWorkers keyword or by GAUSS_WDEF environment variable. When running multi-node job via the PBS batch queue, loading the Linda-enabled module automaticaly sets the GAUSS_WDEF variable to the correct node-list, using one worker per node. In combination with the %CPU keyword, this enables a full scale multi-node execution.

$ echo $GAUSS_WDEF

If a different amount of Linda workers is required, unset or modify the GAUSS_WDEF environment variable accordingly.

Example Input File

This example input file sets water molecule geometry optimization and vibrational frequencies computation using 36 cores (on Barbora supercomputer) and Linda parallelization.

%CPU=0-35
%Mem=8GB
%UseSSH
#p rb3lyp/6-31G* test opt freq

Gaussian Test Job:
WATER H20 optimization

 0 1
 O
 H 1 R
 H 1 R 2 A

R 0.96
A 109.471221

Run Gaussian (All Modes)

Set a scratch directory:

$ export GAUSS_SCRDIR=/scratch/project/dd-0-0/

Run Gaussian:

g16 < input.inp > output.out

For more details, see the Gaussian documentation.

Example Jobscript

This jobscript will run parallel Gaussian job on Salomon supercomputer, using 4 nodes (4*24 = 96 cores) via Linda. The Linda workers are set up automatically by the module load.

#!/bin/bash
#PBS -A OPEN-0-0
#PBS -q qprod -N MyJobName
#PBS -l select=4

# change to workdir
cd $PBS_O_WORKDIR

# load Gaussian Linda enabled module and set up Linda
ml Gaussian/16_rev_c0-binary-Linda

# set GAUSS_SCRDIR and create a directory in the SCRATCH filesystem
export GAUSS_SCRDIR=/scratch/temp/$USER/GaussianJob
mkdir -p $GAUSS_SCRDIR

# run Gaussian
# g16 < input.inp > output.out

# run Gaussian from stdin
g16 << EOF > output.out
%CPU=0-23
%Mem=8GB
%UseSSH
#p rb3lyp/6-31G* test opt freq

Gaussian Test Job:
WATER H20 optimization

 0 1
 O
 H 1 R
 H 1 R 2 A

R 0.96
A 109.471221


EOF

# delete scratch directory
rm -rf $GAUSS_SCRDIR

#end
exit

Comments