Table des matières
Gaussian sur Jean Zay
Présentation
Gaussian est un logiciel de chimie quantique généraliste.
Site utiles
Versions disponibles
Version | Modules à charger | GPU |
---|---|---|
g16 rev-C01 | gaussian/g16-revC01 | Oui |
g09 rev-D01 | gaussian/g09-revD01 |
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" ...
Où 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 for V100, 20h for A100) ## ## Please, refer to comments below for ## more information about these 4 last options. ##SBATCH --account=<account>@v100 # 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 (up to 16 GPU, V100 only) # 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.