Ada: GAUSSIAN

Introduction

Gaussian is a very general ab initio software permitting the calculation of numerous properties. The official website is available here: www.gaussian.com.

Availability

The program has been compiled in parallel OpenMP mode. The available versions are :

  • 03 rev. D02
  • 09 rev. A02
  • 09 rev. D01 (default version)

Please, contact the IDRIS support team ( ) to have access for you and your project.

Launching script

The use of the module command allows you to be placed in the environment adapted to Gaussian. The module load gaussian command charges the default version. If you wish to use another version, refer to the command module.

The following is an example of a launching script in OpenMP parallelisation for a calculation run in WORKDIR :

job.ll
# @ job_name         = Gaussian
# @ output           = $(job_name).$(jobid)
# @ error            = $(job_name).$(jobid)
# @ job_type         = serial
# @ parallel_threads = 16
# @ wall_clock_limit = 1:00:00
# @ queue
 
### Module initialisation ###
module load gaussian
 
### Command echoes ###
set -x
 
### Run the calculation ###
g09 < fichier_entrée

The following is an example of a launching script in OpenMP parallelisation for a calculation run in TMPDIR :

job.ll
# @ job_name         = Gaussian
# @ job_type         = parallel
# @ output           = $(job_name).$(jobid)
# @ error            = $(job_name).$(jobid)
# @ job_type         = serial
# @ parallel_threads = 16
# @ wall_clock_limit = 1:00:00
# @ queue
 
### Module Initialisation ###
module load gaussian
 
### Command echoes ###
set -x
 
### Copy to the TMPDIR ###
cp ./* $TMPDIR
 
### Run the calculation ###
cd $TMPDIR
g09 < fichier_entrée
 
### Copy to the submission folder ###
cd -
cp $TMPDIR/* .

Comment: The number of compute cores requested in the LoadLeveler directives for the Ada machine must not exceed thirty-two (32) as Gaussian is only parallelised in OpenMP.

Parameters specific to this software

In the input file, the very first lines (beginning by %) concern the instructions of the environment parameters (number of compute cores, memory, checkpoint file names, etc.). Following is advice about how to use the instruction lines in order to optimise the calculations on Ada:

Number of compute cores

The number of compute cores is indicated by the Gaussian directive %NProcShared=n. It is imperative to indicate this directive because without it the calculation will launch on only one core no matter how many resources are reserved (which you will be billed for). Therefore, you need to be careful to indicate the same value for this directive as that placed on the LoadLeveler directive #@ parallel_threads = n of the launching script.

In your Gaussian result file, if one or several lines such as: PrsmSu: requested number of processors reduced to: X ShMem 1 Linda. appear for which X has a whole value, it will be necessary to reduce the requested number of compute cores by changing the LoadLeveler value so that it is the same as the X value (in the launching script and in the input file).

Note that the %NProc directive is depreciated.

Memory

The memory consumed by Gaussian includes a dynamically allocated part controlled by the Gaussian command %mem. The default value is very small so it is necessary to increase it. Here is an empirical formula for using a maximum amount of memory in function of the number of compute cores:

%mem = ((3.5 * n) - (n + 1)) GB, with

  • 3.5 : default memory on Ada for one core
  • n : number of cores

For example, for 16 cores, you must indicate a maximum memory of %mem=39GB.

In general, it is not necessary to use Ada's large memory nodes for the Gaussian calculations.

Documentation