On dispose :
Pour chaque étape, il faut préparer un fichier de données (input)
contenant les mots-clé décrivant le travail demandé. La liste des mots-clé
correspondant à chaque programme est donnée dans le manuel
Molcas User's Guide.
Outre ce fichier de données, d'autres fichiers sont utilisés ; ils sont
écrits à une étape et utilisés lors d'une étape ultérieure. Afin que
la communication de ces fichiers entre les différentes étapes soit
possible, Molcas utilise un nom symbolique pour chacun de ces fichiers.
C'est ainsi par exemple que le programme SEWARD crée en sortie
le fichier d'intégrales nommé ORDINT qui sera relu sous ce nom par
le programme SCF.
La liste des fichiers gérés par Molcas est donnée dans le manuel/chapitre
Molcas User's Guide.
Note : les limites mémoire en batch et en interactif sont
généralement indiquées dans la news class de chaque
machine de calcul.
Par exemple, supposons qu'en interactif sur une machine donnée nous
soyons limités en mémoire à 64 mégaoctets. On pourrait alors fixer
cette variable à 48 (pour laisser un peu de place pour les tableaux
alloués statiquement par Molcas). Ainsi pour utiliser 48 mégaoctets
de mémoire, en Korn shell, faites :
En mettant cette variable à la valeur 0, Molcas considérera que la
taille limite d'un fichier est de 200 gigaoctets et découpera les
fichiers plus gros en morceaux. C'est donc cette valeur qui est
recommandée.
Pour obtenir cette valeur, en Korn shell, on pourra faire :
Note : l'utilisation du sous-répertoire molcas.$$ dont
le nom change à chaque fois (puisqu'il dépend du numéro de processus
qui change à chaque fois), garantit que l'on n'utilisera pas par erreur
des fichiers provenant d'un autre calcul.
Par exemple, pour choisir HF comme nom de projet, en bash,
on pourra faire :
La variable $Project définit le premier qualifieur de ces noms de
fichiers. Le second qualifieur des fichiers (l'extension) dépend du
nom symbolique. Par exemple, si le préfixe choisi est HF,
le fichier de nom symbolique ORDINT mentionné ci-dessus correspondra
en fait au nom /u/rech/lab/rlab001/HF.OrdInt.
La liste des extensions utilisées par Molcas est donnée dans le manuel
Molcas User's Guide.
Note : comme cette variable n'est pas utilisée par Molcas,
il est inutile de l'exporter.
Il faut commencer par préparer un script analogue à celui présenté au-dessus.
Il commence par quelques directives spéciales destinées au système LoadLeveler
sur machine IBM.
Voici un exemple complet sur la machine IBM Vargas.
Une fois ce script préparé, il n'y a plus qu'à le soumettre par la
commande llsubmit et à attendre que le travail correspondant
soit sélectionné et terminé.
Documentation
Distribution
Sur les machines de calcul, les diverses versions de Molcas sont installées
sous le répertoire /usr/local/prod/MOLCAS. On trouvera
les sous-répertoires correspondant à chaque version (cf. fichier
README) et sous chacun d'eux, les
sous-répertoires habituels de Molcas :
contient tout ce qui est nécessaire en vue d'une exécution de Molcas,
à savoir :
contient entre autres, le manuel au format Pdf mentionné
au chapitre précédent.
contient tous les fichiers associés aux exemples présentés dans
le manuel ou le chapitre Molcas Tutorial and Examples.
contient tous les fichiers associés aux exemples du didacticiel présenté
dans le manuel Molcas Tutorial and Examples.
contient les bases connues de Molcas.
Utilisation : présentation de la chaîne Molcas
Molcas se présente comme un ensemble de programmes exécutables communiquant
entre eux via des fichiers. Une exécution comporte en général plusieurs
étapes, par exemple une étape de calcul d'intégrales, une étape
SCF, une étape Post-SCF et une étape de détermination de propriétés.
Utilisation : variables d'environnement générales
Deux variables d'environnement générales sont utilisées par Molcas :
Molcas sait gérer l'allocation dynamique de mémoire : au fur et à mesure
des besoins Molcas s'alloue des blocs de mémoire mais il le fait
jusqu'à atteindre une certaine limite définie par cette variable :
export MOLCASMEM=48
En réalité sur les machines récentes, la mémoire disponible
est plus importante et on peut donc monter bien plus haut
(jusqu'à 16Go sur Vargas en mode d'adressage 64 bits). Pour plus
d'information, consultez le document
"Vargas : gestion de la mémoire".
export MOLCASDISK=0
Utilisation : variables d'environnement propres à un calcul
Elle indique le répertoire de travail où se trouveront tous les fichiers
intermédiaires. Elle doit être impérativement définie. En général,
à l'IDRIS il est recommandé qu'elle pointe sur un répertoire temporaire
$TMPDIR pour des raisons d'espace disponible et de performance.
export WorkDir=$TMPDIR/molcas.$$
mkdir $WorkDir
Dans cette définition barbare, $$ correspond au numéro du
processus courant. On définiera ainsi un sous-répertoire dont le nom est
de la forme molcas.12345.
Elle doit être positionnée impérativement. Elle définit le nom du
projet qui est une chaîne de caractères qui caractérise le calcul
en cours et dont la valeur est laissée à votre libre choix.
export Project=HF
Cette variable permet également de définir le nom véritable des
fichiers générés par Molcas. En effet, on a vu ci-dessus que Molcas
travaillait avec des noms de fichiers symboliques. En fait, il
effectue une correspondance entre ces noms symboliques et des noms
véritables, formés de deux qualifieurs.
Elle n'est pas du tout imposée par Molcas, mais il est d'usage de
la définir pour désigner le répertoire des fichiers permanents.
En effet, le répertoire $WorkDir, défini plus haut, désigne
un répertoire de travail, c'est-à-dire un répertoire destiné à
contenir tous les fichiers générés par Molcas au cours du calcul,
mais qui sera entièrement effacé à la fin de celui-ci. En général,
on dispose également d'un répertoire qui contient avant le lancement
du calcul les fichiers de données pour les différentes étapes et où
l'on rangera à la fin du calcul les fichiers de sortie que l'on veut
conserver. C'est le rôle de ce répertoire $CurrDir
qui est le plus souvent un sous-répertoire du répertoire
$HOME. Par exemple, si on veut utiliser à cette fin le
sous-répertoire molcas du répertoire $HOME, en
Korn-shell, on fera :
CurrDir=$HOME/molcas
Utilisation : exécution d'une étape Molcas
Note: Les différentes versions de ce produit ne sont accessibles qu'en mode
mono-processeur. L'installation en mode parallèle présente trop de problèmes
et lorsqu'elle aboutit les performances obtenues à l'exécution sont
très médiocres.
Avant toute utilisation de Molcas, il est nécessaire de l'activer
au moyen de la commande :
vargas-rlab000> module load molcas
La commande précédente permet de charger la version par défaut de Molcas.
Si vous désirez connaître les différentes versions disponibles, consultez
la notice de la commande module.
Utilisation : exemple récapitulatif en interactif
Comme tout cela est un peu complexe, nous allons l'illustrer sur
un exemple complet portant sur la molécule HF où nous allons enchaîner
les étapes suivantes : nous allons calculer les intégrales à l'aide de
seward, nous allons effectuer un calcul SCF à l'aide de
scf, puis un calcul de type RASSCF à l'aide de
rasscf et enfin un calcul CASPT2 à l'aide de caspt2,
à l'issue duquel nous sauvegarderons les orbitales moléculaires générées.
Nous supposons que nous avons préparé dans le répertoire
$HOME/molcas des fichiers de données pour les différentes étapes
(et que nous les avons nommés selon la terminologie suivante :
projet.etape.input, par exemple HF.scf.input)
et que c'est dans ce répertoire que nous voulons récupérer le fichier
d'orbitales.
#---Phase 1 : activation de molcas
module load molcas
#---Phase 2 : Préparation de l'environnement
# On demande 256 mégaoctets de mémoire dynamique
export MOLCASMEM=256
# Les fichiers de plus de 20 gigaoctets seront découpés
export MOLCASDISK=20000
# Le répertoire de travail
export WorkDir=$TMPDIR/molcas.$$
# Le nom du projet
export Project=HF
# Le répertoire permanent
CurrDir=$HOME/molcas
# On crée le répertoire de travail et on s'y place
mkdir $WorkDir
cd $WorkDir
#--- Phase 3 : Exécution proprement dite des 4 étapes Molcas
molcas $CurrDir/$Project.seward.input
molcas $CurrDir/$Project.scf.input
molcas $CurrDir/$Project.rasscf.input
molcas $CurrDir/$Project.caspt2.input
# Sauvegarde du fichier d'orbitales dans le répertoire permanent
cp $Project.Pt2Orb $CurrDir
# Liste des fichiers du répertoire temporaire
ls -lrt
Utilisation : soumission d'un travail en traitement par lot
Molcas étant un gros consommateur de ressources, à la fois au niveau
temps de calcul, entrées-sorties et mémoire, les limitations
du mode interactif à l'IDRIS ne permettent de traiter que des
petits tests. Dès que l'on devra traiter un cas réaliste, il faudra
passer par le système NQS ou LoadLeveler suivant la machine.
# @ job_name = Test_Vargas
# @ wall_clock_limit = 01:00:00
# @ data_limit = 2Gb
# Fichier de sortie standard du travail
# @ output = $(job_name).$(jobid)
# Fichier de sortie d'erreur du travail
# @ error = $(job_name).$(jobid)
# Pour recevoir un message informatif de fin de job
# @ notification = complete
# @ queue
# Mode "bavard" du shell
#set -v
echo "Job batch de test de MOLCAS sur Vargas via LoadLeveler"
echo "====================================================="
date
#
# Activation de molcas
module load molcas
#
#
# Préparation de l'environnememt
#
#------------------ Définitions impératives ------------------------
#
#---Le nom du projet
export Project=water
#
#---Répertoire de travail
export WorkDir=$TMPDIR/MOLCAS.$$
echo "WorkDir=$WorkDir"
mkdir $WorkDir
#-------------------- Définitions recommandées ----------------------
#
#---Sauvegarde du répertoire courant de travail
export CurrDir=$LOADL_STEP_INITDIR
echo "CurrDir=$CurrDir"
#
#---On demande 256Mb de mémoire
export MOLCASMEM=256
#
#---Découpage des fichiers de plus de 200Gb
export MOLCASDISK=0
#
cd $WorkDir
#
#-----------------------------------------------------------
#---Première étape (génération des intégrales)
molcas $CurrDir/$Project.seward.input
#
#---Deuxième étape (Hartree-Fock Self-Consistent Field -SCF)
molcas $CurrDir/$Project.scf.input
#
#---Troisième étape (Restricted Active Space Self Consistent Field calc.)
molcas $CurrDir/$Project.rasscf.input
#
#---Quatrième étape (Dynamic molecular correlation energy calc.)
molcas $CurrDir/$Project.caspt2.input
#
ls -ltr
cd $CurrDir
rm -r $WorkDir
date
echo "Fin du job de test de MOLCAS"
llsubmit mon_script
Pour en savoir plus
sur le système le système de soumission au batch
et plus généralement sur les modalités d'utilisation des machines de
calcul de l'IDRIS, consultez :
© CNRS - IDRIS, 13/01/2012