Ada : GAUSSIAN

Présentation

Gaussian est un logiciel de chimie quantique ab initio très général, permettant de calculer de très nombreuses propriétés. Le site officiel est disponible ici : www.gaussian.com.

Disponibilité

Le programme a été compilé en mode parallèle OpenMP. Les versions disponibles sont :

  • 03 rev. D02
  • 09 rev. A02
  • 09 rev. C01
  • 09 rev. D01 (version par défaut)

Contactez l'assistance de l'IDRIS ( ) pour que votre groupe puisse accéder à Gaussian.

Script de lancement

L'utilisation de la commande module permet de se placer dans l'environnement adapté à Gaussian. La commande module load gaussian charge la version par défaut. Si vous souhaitez en utiliser une autre, référez vous à la documentation sur la commande module.

Voici un exemple de script de lancement en parallélisation OpenMP pour un calcul exécuté dans le 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
 
### Initialisation de Module ###
module load gaussian
 
### Echo des commandes ###
set -x
 
### Lancement du calcul ###
g09 < fichier_entrée

Voici un exemple de script de lancement en parallélisation OpenMP pour un calcul exécuté dans le TMPDIR :

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
 
### Initialisation de Module ###
module load gaussian
 
### Echo des commandes ###
set -x
 
### Copie vers le TMPDIR ###
cp ./* $TMPDIR
 
### Lancement du calcul ###
cd $TMPDIR
g09 < fichier_entrée
 
### Copie vers le dossier de soumission ###
cd -
cp $TMPDIR/* .

Remarque Le nombre de cœurs de calcul demandé à l'aide des directives LoadLeveler ne doit pas excéder trente-deux (32) sur la machine Ada, car Gaussian est seulement parallélisé en OpenMP.

Paramètres propres au logiciel

Dans le fichier d'entrée, les toutes premières lignes sont dédiées à des instructions de paramètres d'environnement (nombre de cœurs de calcul, mémoire, nom de fichiers de checkpoint, etc.), commençant par %. Afin d'optimiser les calculs sur Ada, voici quelques conseils sur leur utilisation.

Nombre de cœurs de calcul

Le nombre de coeurs de calcul est à indiquer par la directive Gaussian %NProcShared=n. Il est impératif de l'indiquer, sans quoi le calcul se lancera sur un seul cœur, peu importe la réservation de ressources (qui vous seront facturées). Il faut donc veiller à indiquer la même valeur que celle placée au niveau de la directive LoadLeveler #@ parallel_threads = n du script de lancement.

Si dans votre fichier de résultat Gaussian, une ou plusieurs lignes du type : PrsmSu: requested number of processors reduced to: X ShMem 1 Linda. apparaissent, où X prend une valeur entière, il faudra réduire le nombre de cœurs de calcul demandé à cette valeur (dans le script de lancement et dans le fichier d'entrée).

Notez que la directive %NProc est dépréciée.

Mémoire

La mémoire consommée par Gaussian comprend une partie allouée dynamiquement, contrôlée par la commande %mem de Gaussian. Par défaut, la valeur utilisée est très petite, il faut donc l'augmenter. Voici une formule empirique permettant d'utiliser un maximum de mémoire en fonction du nombre de coeurs de calcul :

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

  • 3.5 : mémoire par défaut sur Ada pour un coeur
  • n : nombre de coeurs

Par exemple, pour 16 coeurs, il faudra indiquer un maximum de %mem=39GB.

Il n'est, en général, pas nécessaire d'utiliser les nœuds à mémoire large de Ada pour les calculs Gaussian.

Documentation