Gaussian sur Jean Zay

Présentation

Gaussian est un logiciel de chimie quantique généraliste.

Site utiles

Versions disponibles

Version Modules à charger Commentaires
g16 rev-C01gaussian/g16-revC01 Version de production CPU et GPU
g09 rev-D01gaussian/g09-revD01 Version de production CPU

Gaussian16

Fichier d'entrée

Gaussian16 permet d'utiliser des options de ligne de commande pour les paramètres du link0. Nous vous conseillons de ne pas utiliser les commandes suivantes :

%mem
%nprocshared (obsolète)

En particulier la commande %mem a introduit des problèmes de mémoire sur les cas tests. Il faut utiliser :

g09 -m 140GB ...

Vous devez également préciser la quantité de mémoire que pourra utiliser le logiciel.
Un ordre de grandeur correct est de 80% de la mémoire disponible selon le calcul : 0.8*cpus-per-task*4 GB

Il est conseillé de remplacer la commande %nprocshared par l'option :

g16 -c="0-39" ...

0-39 signifie que vous utilisez tous les coeurs du noeud. Il est nécessaire de l'adapter au nombre de coeurs que vous voulez utiliser.

Attention : Si vous ne demandez pas l'intégralité du noeud (–cpus-per-task < 40) vous devez utiliser le script 'g16_cpu_list' pour indiquer les bons numéros de coeurs.

Les options de la ligne de commande sont recensées à la page Options du site Web de Gaussian.

Script de soumission sur la partition CPU

g16.slurm
#!/bin/bash
#SBATCH --nodes=1               # Number of Nodes
#SBATCH --ntasks-per-node=1     # Number of MPI tasks per node
#SBATCH --cpus-per-task=40      # Number of OpenMP threads
#SBATCH --hint=nomultithread    # Disable hyperthreading
#SBATCH --job-name=job          # Jobname
#SBATCH --output=%x.o%j         # Output file %x is the jobname, %j the jobid 
#SBATCH --error=%x.o%j          # Error file
#SBATCH --time=20:00:00         # Runtime limit HH:MM:SS (max 100h)
##
## Please, refer to comments below for
## more information about these 4 last options.
##SBATCH --account=<account>@cpu       # To specify cpu accounting: <account> = echo $IDRPROJ
##SBATCH --partition=<partition>       # To specify partition (see IDRIS web site for more info)
##SBATCH --qos=qos_cpu-dev      # Uncomment for job requiring less than 2 hours
##SBATCH --qos=qos_cpu-t4      # Uncomment for job requiring more than 20h (only one node)
 
# Cleans out the modules loaded in interactive and inherited by default
module purge
 
# Load the module
module load gaussian/g16-revC01
 
# Use JOBSCRATCH as temporary directory for job files ( erased at the end of job! )
# Instead, you can use a subdirectory of $SCRATCH to keep the temporary files needed to restart jobs
# If you want to keep chk and/or rwf file, you can also specify the link0 commands
export GAUSS_SCRDIR=$JOBSCRATCH
 
# Run of Gaussian on 40 cores (-c="0-39" and --cpus-per-task=40)
# asking for 140GB of memory (-m=140GB) : maximum is 4GB per core reserved.
g16 -c="0-39" -m=140GB < job.com
## If you run with less than 40 cores please use instead
## g16 -c=$(g16_cpu_list) -m=<0.8*number of cores*4>GB

Script de soumission sur la partition GPU

g16.slurm
#!/bin/bash
#SBATCH --nodes=1               # Number of Nodes
#SBATCH --ntasks-per-node=1     # Number of MPI tasks per node
#SBATCH --cpus-per-task=40      # Number of OpenMP threads
#SBATCH --gres=gpu:4            # Allocate 4 GPUs
#SBATCH --hint=nomultithread    # Disable hyperthreading
#SBATCH --job-name=job          # Jobname
#SBATCH --output=%x.o%j         # Output file %x is the jobname, %j the jobid 
#SBATCH --error=%x.o%j          # Error file
#SBATCH --time=20:00:00         # Runtime limit HH:MM:SS (max 100h)
##
## Please, refer to comments below for
## more information about these 4 last options.
##SBATCH --account=<account>@gpu       # To specify gpu accounting: <account> = echo $IDRPROJ
##SBATCH --partition=<partition>       # To specify partition (see IDRIS web site for more info)
##SBATCH --qos=qos_gpu-dev      # Uncomment for job requiring less than 2 hours
##SBATCH --qos=qos_gpu-t4      # Uncomment for job requiring more than 20h (only one node)
 
# Cleans out the modules loaded in interactive and inherited by default
module purge
 
# Load the module
module load gaussian/g16-revC01
 
# Use JOBSCRATCH as temporary directory for job files ( erased at the end of job! )
# Instead, you can use a subdirectory of $SCRATCH to keep the temporary files needed to restart jobs
# If you want to keep chk and/or rwf file, you can also specify the link0 commands
export GAUSS_SCRDIR=$JOBSCRATCH
 
# Run of Gaussian on 4 gpus (-g="0-3=0-3")
# asking for 100GB of memory (-m=100GB) : maximum is 4GB per core reserved.
g16 -c="$(g16_cpu_list)" -m=100GB -g="$(g16_gpu_list)" < job.com

Gaussian09

Fichier d'entrée

Attention : le fichier d'entrée de Gaussian doit avoir les commandes de parallélisation dans son entête. Sinon le code n'utilisera qu'un seul cœur.

Vous devez également préciser la quantité de mémoire que pourra utiliser le logiciel.
Un ordre de grandeur correct est de 80% de la mémoire disponible selon le calcul : 0.8*cpus-per-task*4 GB

%nprocshared=40
%mem=128GB

Script de soumission sur la partition CPU

g09.slurm
#!/bin/bash
#SBATCH --nodes=1                # Number of Nodes
#SBATCH --ntasks-per-node=1      # Number of MPI tasks per node
#SBATCH --cpus-per-task=40       # Number of OpenMP threads
#SBATCH --hint=nomultithread     # Disable hyperthreading
#SBATCH --job-name=gaussian_test # Jobname
#SBATCH --output=%x.o%j          # Output file %x is the jobname, %j the jobid
#SBATCH --error=%x.o%j           # Error file
#SBATCH --time=20:00:00          # Runtime limit HH:MM:SS (max 100h)
##
## Please, refer to comments below for
## more information about these 4 last options.
##SBATCH --account=<account>@cpu       # To specify cpu accounting: <account> = echo $IDRPROJ
##SBATCH --partition=<partition>       # To specify partition (see IDRIS web site for more info)
##SBATCH --qos=qos_cpu-dev      # Uncomment for job requiring less than 2 hours
##SBATCH --qos=qos_cpu-t4      # Uncomment for job requiring more than 20h (only one node)
 
# Cleans out the modules loaded in interactive and inherited by default
module purge
 
# Load the module
module load gaussian/g09-revD01
 
# Use JOBSCRATCH as temporary directory (most efficient IOs but erased at the end of job! )
# If you wish to keep the checkpoint file, just add to your input file:
#    %chk=input.chk 
# replacing "input" with the name of your job
export GAUSS_SCRDIR=$JOBSCRATCH
 
g09 < input.com

Remarques

  • Les jobs ont tous des ressources définies dans Slurm par une partition et une “Qualité de Service” QoS (Quality of Service) par défaut. Vous pouvez en modifier les limites en spécifiant une autre partition et/ou une QoS comme indiqué dans notre documentation détaillant les partitions et les Qos.
  • Pour les comptes multi-projets ainsi que ceux ayant des heures CPU et GPU, il est indispensable de spécifier l'attribution d'heures sur laquelle décompter les heures de calcul du job comme indiqué dans notre documentation détaillant la gestion des heures de calcul.