MOLPRO

De MaGridWiki
Aller à : Navigation, rechercher

N.B :

  • Ce tutoriel explique un exemple d’exécution de l'application MOLPRO sur la grille de calcul.
  • Ce tutoriel est adapté principalement à la VO nationale : magrid
  • L'utilisateur est supposé connecté à l'interface utilisateur (ex: ui2.cnrst.magrid.ma), authentifié (certificat valide) et autorisé (vo magrid).


Sommaire

Description de Molpro

Molpro est un logiciel de chimie quantique ab initio pour l'étude de la structure électronique des molécules. L'une des particularités de Molpro est la recherche d'une très haute précision dans les calculs portant sur les petites molécules, grâce à la prise en compte très poussée de la corrélation électronique (méthodes Multireference CI, Multiconfiguration SCF, Coupled Cluster, Full CI etc.). Cela dit, Molpro permet également d'effectuer d'autres types de calculs sur des molécules plus importantes, par exemple avec les méthodes de fonctionnelles de la densité. Molpro a été écrit par H.J. Werner de l'Institut für Theoretische Chemie de l'université de Stuttgart (Allemagne) et P.J. Knowles de la School of Chemistry de l'Université de Cardiff (Royaume Uni). Les publications résultant de l'utilisation de l'un des programmes du logiciel Molpro doivent mentionner celui-ci selon la référence figurant dans le manuel de l'utilisateur.

Description des inputs/outputs

  • Inputs: test.com et le script exécutable molpro.sh qui va lancer l’exécution de Molpro avec l'argument d'entrée test.com.
  • Outputs: test.out et test.err qui sont simplement les sorties standard et d'erreurs.
Fichier: test.com
  ***,ALC4H
           memory,100,m
           gprint,orbitals
 
           basis=VDZ
 
 
           geomtyp=xyz
           geometry={
           6
           alc4h
           c,0.0,0.0,-3.140914
           h,0.0,0.0,-4.202268
           c,0.0,0.0,-1.934641
           c,0.0,0.0,-0.574641
           c,0.0,0.0,0.650237
           al,0.0,0.0,2.630916
           }
 
           {rhf;wf,38,1,0;}
          ---;

Récupérer le tag de MOLPRO sur le VO magrid

On fait appel au système d'information [1].

[elkharrim@ui2 molpro]$lcg-infosites --vo magrid tag


Le fichier du job: molpro.jdl

Fichier: molpro.jdl
Type = "Job";
JobType = "Normal";
Executable = "molpro.sh";
Arguments = "test.com";
StdOutput = "test.out";
StdError = "test.err";
InputSandbox = {"molpro.sh", "test.com"};
OutputSandbox = {"test.err","test.out"};
Requirements = Member("VO-magrid-molpro-mpi_v2010.1",other.GlueHostApplicationSoftwareRunTimeEnvironment);


Le fichier exécutable: molpro.sh

Fichier: molpro.sh
#!/bin/bash
source $VO_MAGRID_SW_DIR/setenv_molpro-mpp_v2010.1.sh
molpro $1


Ce fichier exécute d'abord le fichier setenv_molpro_v2010.1.sh qui charge l’environnement d’exécution de Molpro ensuite

il exécute Molpro avec l’argument passé du fichier JDL i.e test.com.


Soumettre le job

[2]

Récupérer les résultats du job

[3]

Jobs de longue durée

Si la durée d’exécution dépasse 12h alors il faut créer un proxy de renouvellement et ajouter dans le fichier JDL:

MyProxyServer = "myproxy.magrid.ma";

Exécuter la commande:

[elkharrim@ui2 molpro]$voms-proxy-init --voms magrid
[elkharrim@ui2 molpro]$myproxy-init -d -n -s myproxy.magrid.ma

Après soumettre normalement le job.

Plus de détails sur [4].

Job MPI

Pour exécuter Molpro en mode MPI il faut un fichier jdl et une exécutable modifiés, soient molpro-mpi.jdl et molpro-mpi.sh respectivement :

Fichier: molpro-mpi.jdl
    Executable = "molpro-mpi.sh";
    Arguments = "test.com";
    CpuNumber = 4;
    InputSandbox = {"molpro-mpi.sh","test.com"};
    StdOutput = "test.out";
    StdError  = "test.err";
    OutputSandbox = {"test.out","test.err"};
    Requirements = Member("MPI-START", other.GlueHostApplicationSoftwareRunTimeEnvironment)
                && Member("MPICH2", other.GlueHostApplicationSoftwareRunTimeEnvironment);
    Requirements = Member("VO-magrid-molpro-mpi_v2010.1",other.GlueHostApplicationSoftwareRunTimeEnvironment);
Fichier: molpro-mpi.sh
#!/bin/bash
source $VO_MAGRID_SW_DIR/setenv_molpro-mpp_v2010.1.sh  $1
$RUNMPI

Les autres étapes restent les mêmes.

Job avec un gros output

OutputSandbox ne peut pas être utilisé pour récupérer les gros output du job dans ce cas (>10M). On doit plutôt passer par les services

qui permettent la gestion des fichiers i.e. le LFC (LCG File Catalog) et le SE (Storage Element).

Le principe est simple, transférer les gros résultats du WN vers le SE, ensuite du SE vers le UI.

  • Etape 1: Choisir un LFC
[elkharrim@ui2 molpro]$ lcg-infosites --vo magrid lfc se2.cnrst.magrid.ma
  • Etape 2: Définir la variable d’environnement LFC_HOST:
[elkharrim@ui2 molpro]$ export LFC_HOST=se2.cnrst.magrid.ma
  • Etape 3: Créer son dossier sur la LFC (vous pouvez le faire une fois pour toute).
[elkharrim@ui2 molpro]$ lfc-mkdir -p /grid/magrid/elkharrim
  • Etape 4: Choisir un SE qui sera l'emplacement physique de vos données:
[elkharrim@ui2 molpro]$ lcg-infosites --vo magrid se Avail Space(kB) Used Space(kB) Type SE ------------------------------------------ 7249742865 501050407 SRM se1.cnrst.magrid.ma 144989479 62513442 SRM se2.cnrst.magrid.ma
  • Etape 5: Supposons alors dans notre cas qu'on veut récupérer test.out, supposé gros dans notre exemple, en passant par le SE.

On retire le test.out de la liste de l'OutputSandbox dans le fichier jdl:

Fichier: molpro.jdl
Type = "Job";
JobType = "Normal";
Executable = "molpro.sh";
Arguments = "test.com";
StdOutput = "test.out";
StdError = "test.err";
InputSandbox = {"molpro.sh", "test.com"};
OutputSandbox = {"test.err"};

et on modifié le script molpro.sh de cette manière :

Fichier: molpro.sh
#!/bin/bash
source $VO_MAGRID_SW_DIR/setenv_molpro-mpp_v2010.1.sh
export LFC_HOST=se2.cnrst.magrid.ma
export LCG_CATALOG_TYPE="lfc"
 
#running molpro
molpro $1
 
# uploading the output from the WN to the SE.
lcg-cr --vo magrid -d se1.cnrst.magrid.ma -l lfn:/grid/magrid/elkharrim/test.out file:`pwd`/test.out
  • Etape 6: Soumission du Job
  • Etape 7: Une fois le job est terminé on peut vérifier la présence de notre fichier sur le SE:
[elkharrim@ui2 molpro]$ lfc-ls /grid/magrid/elkharrim test.out [elkharrim@ui2 molpro]$ lfc-ls -ll /grid/magrid/elkharrim -rw-rw-r-- 1 120 108 19706 Nov 01 01:01 test.out
  • Etape 8: A la fin on le récupère sur le UI:
[elkharrim@ui2 molpro]$ lcg-cp --vo magrid lfn:/grid/magrid/elkharrim/test.out file:`pwd`/test.out
Navigation
Administrateur
Utilisateur
Applications
Autorité de Certification