QuantumEspresso

De MaGridWiki
Aller à : Navigation, rechercher

N.B :

  • Ce tutoriel explique un exemple d’exécution de l'application quantum espresso sur la grille de calcul.
  • Ce tutoriel est adapté principalement à la VO nationale : magrid
  • L'utilisateur est supposé connecté à l'interface utilisateur (ex: ui.magrid.ma), authentifié (certificat valide) et autorisé (vo magrid).
  • Ce tutoriel démontre l'utilisation de pw.x . les scripts peuvent être adaptés pour lancer d'autres executables (turbo_lanczos.x , turbo_spectrum.x ... ) selon le besoin .


Sommaire

Description de Quantum ESPRESSO

Quantum ESPRESSO is a software suite for ab initio quantum chemistry methods of electronic-structure calculation and materials modeling, distributed for free under the GNU General Public License. It is based on Density Functional Theory, plane wave basis sets, and pseudopotentials (both norm-conserving and ultrasoft). ESPRESSO is an acronym for opEn-Source Package for Research in Electronic Structure, Simulation, and Optimization.

Description des inputs/outputs

  • Inputs: Benz.pw-in et le script exécutable espresso.sh qui va lancer l’exécution de espresso avec l'argument d'entrée Benz.com.
  • Outputs: stdout.log et stdout.err qui sont simplement les sorties standard et d'erreurs.
Fichier: Benz.pw-in
 &control
    calculation = 'scf'
    title = 'benzene test'
    restart_mode='from_scratch',
    outdir='./',
    prefix='Benz'
 
 /
 &system
    ibrav = 6,
    celldm(1) = 32,
    celldm(3) = 0.83,
    nat = 12,
    ntyp = 2,
    ecutwfc = 25,
    ecutrho = 250,
 /
 
 &electrons
   tqr=.true.
 /
 
ATOMIC_SPECIES
C 12.01 C.pz-rrkjus.UPF
H 1.0 H.pz-rrkjus.UPF
ATOMIC_POSITIONS {Angstrom}
C        5.633200899   6.320861303   5.
C        6.847051545   8.422621957   5.
C        8.060751351   7.721904557   5.
C        8.060707879   6.320636665   5.
C        6.846898786   5.620067381   5.
C        5.633279551   7.722134449   5.
H        6.847254360   9.512254789   5.
H        9.004364510   8.266639340   5.
H        9.004297495   5.775895755   5.
H        6.846845929   4.530522778   5.
H        4.689556006   5.776237709   5.
H        4.689791688   8.267023318   5.
K_POINTS {gamma}

Récupérer le tag de Quantum ESPRESSO sur le VO magrid

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

[rahim@ui espresso]$lcg-infosites --vo magrid tag


Le fichier du job: espresso.jdl

Fichier: espresso.jdl
Type = "Job";
JobType = "Normal";
Executable = "espresso.sh";
Arguments = "Benz";
StdOutput = "stdout.log";
StdError = "stderr.log";
OutputSandbox = {"stdout.log", "stderr.log"};
InputSandbox = {"espresso.sh","Benz.pw-in"};
Requirements = Member("VO-magrid-espresso_v5.0.3",other.GlueHostApplicationSoftwareRunTimeEnvironment);


Le fichier exécutable: espresso.sh

Fichier: espresso.sh
#!/bin/bash
source $VO_MAGRID_SW_DIR/setenv_espresso-5.0.3.sh
prefix=$1
pw.x < ${prefix}.pw-in


Ce fichier exécute d'abord le fichier setenv_espresso-5.0.3.sh qui charge l’environnement d’exécution de quantum espresso ensuite

il exécute espresso avec l’argument passé du fichier JDL i.e Benz.pw-in.


Soumettre le job

Ce job est soumis sur la grille en utilisant la commande

[rahim@ui espresso]$ glite-wms-job-submit -a -o jobId espresso.jdl Connecting to the service https://wms2.magrid.ma:7443/glite_wms_wmproxy_server ====================== glite-wms-job-submit Success ====================== The job has been successfully submitted to the WMProxy Your job identifier is: https://wms2.magrid.ma:9000/APYXI_FiFf4hitAEATmukw The job identifier has been saved in the following file: /home/rahim/exemples/espresso/jobId ==========================================================================

L'option -o jobId permet de sauvegarder l'ID du job soumis dans le fichier jobId. Ce fichier pourra ensuite être utilisé comme paramètre pour interroger le statut du job ou bien télécharger les fichiers de sorties de l'OutputSandbox. L'option -a est indispensable pour des raisons de délégation de proxy.

Pour interroger le statut du job, vous devez utiliser la commande suivante en spécifiant le fichier dans lequel vous avez sauvé l'ID du job :

[rahim@ui espresso]$ glite-wms-job-status -i jobId ======================= glite-wms-job-status Success ===================== BOOKKEEPING INFORMATION: Status info for the Job : https://wms2.magrid.ma:9000/APYXI_FiFf4hitAEATmukw Current Status: Running Status Reason: unavailable Destination: ce2.cnrst.magrid.ma:8443/cream-pbs-magrid Submitted: Fri May 8 11:45:10 2015 WET ==========================================================================

Current Status peut prendre les valeurs suivantes :

   Submitted : soumis avec succès à la grille
   Waiting : un CE répondant aux besoins du job doit être sélectionnée
   Ready : un CE a été trouvée
   Scheduled : le job a été soumis avec succès au CE sélectionné
   Running : le job est en cours d'exécution
   Done : l'exécution est terminée (sans erreur ou non)
   Cleared : les sorties du job ont été téléchargées
   Aborted : le job a échoué et a été arrêté
   Cancelled : le job a été annulé

Récupérer les résultats du job

Lorsque le job a le statut Done (Success), cela signifie qu'il s'est terminé correctement, sans retourner de code d'erreur. Les sorties - le contenu de l'OutputSandbox, peut alors être téléchargé avec la commande :

[rahim@ui espresso]$ glite-wms-job-output -i jobId --dir . Connecting to the service https://wms2.magrid.ma:7443/glite_wms_wmproxy_server ================================================================================ JOB GET OUTPUT OUTCOME Output sandbox files for the job: https://wms2.magrid.ma:9000/APYXI_FiFf4hitAEATmukw have been successfully retrieved and stored in the directory: /home/rahim/exemples/espresso/rahim_APYXI_FiFf4hitAEATmukw ================================================================================

Les fichiers de l'OutputSandbox du job dont l'ID est contenu dans jobId sont sauvés dans le répertoire spécifié par l'option --dir, dans un sous-répertoire au nom généré aléatoirement.

Fichier: stdout.log
     Program PWSCF v.5.0.2 (svn rev. 9656) starts on 08May2015 at 11:57:37
 
     This program is part of the open-source Quantum ESPRESSO suite
     for quantum simulation of materials; please cite
         "P. Giannozzi et al., J. Phys.:Condens. Matter 21 395502 (2009);
          URL http://www.quantum-espresso.org",
     in publications or presentations arising from this work. More details at
     http://www.quantum-espresso.org/quote.php
 
     Parallel version (MPI), running on     1 processors
 
     Current dimensions of program PWSCF are:
     Max number of different atomic species (ntypx) = 10
     Max number of k-points (npk) =  40000
     Max angular momentum in pseudopotentials (lmaxx) =  3
     Waiting for input...
     Reading input from standard input
               file C.pz-rrkjus.UPF: wavefunction(s)  2S renormalized
               file H.pz-rrkjus.UPF: wavefunction(s)  1S renormalized
 
     gamma-point specific algorithms are used
 
     Subspace diagonalization in iterative solution of the eigenvalue problem:
     a serial algorithm will be used
 
 
     G-vector sticks info
     --------------------
     sticks:   dense  smooth     PW     G-vecs:    dense   smooth      PW
     Sum       20369    8121   2029              1815357   459173   57327
     Tot       10185    4061   1015
 
 
     Title:
     benzene test
 
 
     bravais-lattice index     =            6
     lattice parameter (alat)  =      32.0000  a.u.
     unit-cell volume          =   27197.4400 (a.u.)^3
     number of atoms/cell      =           12
     number of atomic types    =            2
     number of electrons       =        30.00
     number of Kohn-Sham states=           15
     kinetic-energy cutoff     =      25.0000  Ry
     charge density cutoff     =     250.0000  Ry
     convergence threshold     =      1.0E-06
     mixing beta               =       0.7000
     number of iterations used =            8  plain     mixing
     Exchange-correlation      =  SLA  PZ   NOGX NOGC ( 1 1 0 0 0)
     EXX-fraction              =        0.00
 
     celldm(1)=  32.000000  celldm(2)=   0.000000  celldm(3)=   0.830000
     celldm(4)=   0.000000  celldm(5)=   0.000000  celldm(6)=   0.000000
 
     crystal axes: (cart. coord. in units of alat)
               a(1) = (   1.000000   0.000000   0.000000 )
               a(2) = (   0.000000   1.000000   0.000000 )
               a(3) = (   0.000000   0.000000   0.830000 )
 
     reciprocal axes: (cart. coord. in units 2 pi/alat)
               b(1) = (  1.000000  0.000000  0.000000 )
               b(2) = (  0.000000  1.000000  0.000000 )
               b(3) = (  0.000000  0.000000  1.204819 )
 
 
     PseudoPot. # 1 for C  read from file:
     /opt/exp_soft/magrid/espresso-5.0.3/espresso/pseudo/C.pz-rrkjus.UPF
     MD5 check sum: a648be5dbf3fafdfb4e35f5396849845
     Pseudo is Ultrasoft, Zval =  4.0
     Generated by new atomic code, or converted to UPF format
     Using radial grid of 1425 points,  4 beta functions with:
                l(1) =   0
                l(2) =   0
                l(3) =   1
                l(4) =   1
     Q(r) pseudized with 0 coefficients
 
 
     PseudoPot. # 2 for H  read from file:
     /opt/exp_soft/magrid/espresso-5.0.3/espresso/pseudo/H.pz-rrkjus.UPF
     MD5 check sum: c325bf28c048744aca8614a82587641e
     Pseudo is Ultrasoft, Zval =  1.0
     Generated by new atomic code, or converted to UPF format
     Using radial grid of 1061 points,  2 beta functions with:
                l(1) =   0
                l(2) =   0
     Q(r) pseudized with 0 coefficients
 
 
     atomic species   valence    mass     pseudopotential
        C              4.00    12.01000     C ( 1.00)
        H              1.00     1.00000     H ( 1.00)
 
     No symmetry found
          (note:  3 additional sym.ops. were found but ignored
           their fractional translations are incommensurate with FFT grid)
 
 
   Cartesian axes
 
     site n.     atom                  positions (alat units)
         1           C   tau(   1) = (   0.3326627   0.3732718   0.2952697  )
         2           C   tau(   2) = (   0.4043454   0.4973890   0.2952697  )
         3           C   tau(   3) = (   0.4760191   0.4560089   0.2952697  )
         4           C   tau(   4) = (   0.4760166   0.3732585   0.2952697  )
         5           C   tau(   5) = (   0.4043364   0.3318871   0.2952697  )
         6           C   tau(   6) = (   0.3326674   0.4560225   0.2952697  )
         7           H   tau(   7) = (   0.4043574   0.5617361   0.2952697  )
         8           H   tau(   8) = (   0.5317432   0.4881776   0.2952697  )
         9           H   tau(   9) = (   0.5317393   0.3410894   0.2952697  )
        10           H   tau(  10) = (   0.4043332   0.2675452   0.2952697  )
        11           H   tau(  11) = (   0.2769368   0.3411096   0.2952697  )
        12           H   tau(  12) = (   0.2769507   0.4882003   0.2952697  )
 
     number of k points=     1
                       cart. coord. in units 2pi/alat
        k(    1) = (   0.0000000   0.0000000   0.0000000), wk =   2.0000000
 
     Dense  grid:   907679 G-vectors     FFT dimensions: ( 162, 162, 135)
 
     Smooth grid:   229587 G-vectors     FFT dimensions: ( 108, 108,  90)
 
     Largest allocated arrays     est. size (Mb)     dimensions
        Kohn-Sham Wavefunctions         6.56 Mb     (  28664,   15)
        NL pseudopotentials            26.24 Mb     (  28664,   60)
        Each V/rho on FFT grid         54.06 Mb     (3542940)
        Each G-vector array             6.93 Mb     ( 907679)
        G-vector shells                 0.64 Mb     (  84530)
     Largest temporary arrays     est. size (Mb)     dimensions
        Auxiliary wavefunctions        13.12 Mb     (  28664,   60)
        Each subspace H/S matrix        0.03 Mb     (  60,  60)
        Each <psi_i|beta_j> matrix      0.01 Mb     (     60,   15)
        Arrays for rho mixing         432.49 Mb     (3542940,   8)
 
     Initial potential from superposition of free atoms
     Check: negative starting charge=   -0.002427
 
     starting charge   29.44704, renormalised to   30.00000
 
     negative rho (up, down):  0.247E-02 0.000E+00
     Starting wfc are   30 randomized atomic wfcs
 
     total cpu time spent up to now is       33.2 secs
 
     per-process dynamical memory:   463.1 Mb
 
     Self-consistent Calculation
 
     iteration #  1     ecut=    25.00 Ry     beta=0.70
     Davidson diagonalization with overlap
     ethr =  1.00E-02,  avg # of iterations =  3.0
 
     negative rho (up, down):  0.984E-03 0.000E+00
 
     total cpu time spent up to now is       48.7 secs
 
     total energy              =     -74.98460386 Ry
     Harris-Foulkes estimate   =     -76.57587466 Ry
     estimated scf accuracy    <       2.33163049 Ry
 
     iteration #  2     ecut=    25.00 Ry     beta=0.70
     Davidson diagonalization with overlap
     ethr =  7.77E-03,  avg # of iterations =  2.0
 
     negative rho (up, down):  0.887E-03 0.000E+00
 
     total cpu time spent up to now is       64.9 secs
 
     total energy              =     -75.31276138 Ry
     Harris-Foulkes estimate   =     -75.41363955 Ry
     estimated scf accuracy    <       0.18178596 Ry
 
     iteration #  3     ecut=    25.00 Ry     beta=0.70
     Davidson diagonalization with overlap
     ethr =  6.06E-04,  avg # of iterations =  2.0
 
     negative rho (up, down):  0.764E-03 0.000E+00
 
     total cpu time spent up to now is       80.7 secs
 
     total energy              =     -75.34594649 Ry
     Harris-Foulkes estimate   =     -75.35619300 Ry
     estimated scf accuracy    <       0.01707553 Ry
 
     iteration #  4     ecut=    25.00 Ry     beta=0.70
     Davidson diagonalization with overlap
     ethr =  5.69E-05,  avg # of iterations =  2.0
 
     negative rho (up, down):  0.744E-03 0.000E+00
 
     total cpu time spent up to now is       96.9 secs
 
     total energy              =     -75.35067393 Ry
     Harris-Foulkes estimate   =     -75.35065101 Ry
     estimated scf accuracy    <       0.00047943 Ry
 
     iteration #  5     ecut=    25.00 Ry     beta=0.70
     Davidson diagonalization with overlap
     ethr =  1.60E-06,  avg # of iterations =  3.0
 
     negative rho (up, down):  0.884E-03 0.000E+00
 
     total cpu time spent up to now is      114.6 secs
 
     total energy              =     -75.35082174 Ry
     Harris-Foulkes estimate   =     -75.35081935 Ry
     estimated scf accuracy    <       0.00005125 Ry
 
     iteration #  6     ecut=    25.00 Ry     beta=0.70
     Davidson diagonalization with overlap
     ethr =  1.71E-07,  avg # of iterations =  3.0
 
     negative rho (up, down):  0.989E-03 0.000E+00
 
     total cpu time spent up to now is      131.2 secs
 
     total energy              =     -75.35083497 Ry
     Harris-Foulkes estimate   =     -75.35083773 Ry
     estimated scf accuracy    <       0.00000537 Ry
 
     iteration #  7     ecut=    25.00 Ry     beta=0.70
     Davidson diagonalization with overlap
     ethr =  1.79E-08,  avg # of iterations =  3.0
 
     negative rho (up, down):  0.964E-03 0.000E+00
 
     total cpu time spent up to now is      145.1 secs
 
     End of self-consistent calculation
 
          k = 0.0000 0.0000 0.0000 ( 28664 PWs)   bands (ev):
 
   -20.9495 -18.1827 -18.1810 -14.6487 -14.6476 -12.8006 -10.9896 -10.8985
   -10.1210 -10.1192  -9.0655  -8.1467  -8.1465  -6.3537  -6.3521
 
!    total energy              =     -75.35083738 Ry
     Harris-Foulkes estimate   =     -75.35083793 Ry
     estimated scf accuracy    <       0.00000055 Ry
 
     The total energy is the sum of the following terms:
 
     one-electron contribution =    -352.08825437 Ry
     hartree contribution      =     178.94604785 Ry
     xc contribution           =     -24.64379200 Ry
     ewald contribution        =     122.43516114 Ry
 
     convergence has been achieved in   7 iterations
 
     Writing output data file Benz.save
 
     init_run     :     32.14s CPU     32.97s WALL (       1 calls)
     electrons    :    104.70s CPU    111.90s WALL (       1 calls)
 
     Called by init_run:
     wfcinit      :      2.93s CPU      2.98s WALL (       1 calls)
     potinit      :     10.40s CPU     10.80s WALL (       1 calls)
     realus       :      9.52s CPU      9.56s WALL (       1 calls)
 
     Called by electrons:
     c_bands      :     45.60s CPU     46.66s WALL (       7 calls)
     sum_band     :     25.80s CPU     28.36s WALL (       7 calls)
     v_of_rho     :     11.19s CPU     12.14s WALL (       8 calls)
     newd         :      0.56s CPU      0.60s WALL (       8 calls)
     mix_rho      :     10.58s CPU     11.31s WALL (       7 calls)
 
     Called by c_bands:
     init_us_2    :      1.15s CPU      1.20s WALL (      15 calls)
     regterg      :     42.77s CPU     43.76s WALL (       7 calls)
 
     Called by *egterg:
     h_psi        :     41.05s CPU     41.44s WALL (      26 calls)
     s_psi        :      1.04s CPU      1.05s WALL (      26 calls)
     g_psi        :      0.32s CPU      0.33s WALL (      18 calls)
     rdiaghg      :      0.03s CPU      0.03s WALL (      25 calls)
 
     Called by h_psi:
     add_vuspsi   :      1.00s CPU      1.00s WALL (      26 calls)
 
     General routines
     calbec       :      1.33s CPU      1.33s WALL (      33 calls)
     fft          :     29.32s CPU     32.39s WALL (      52 calls)
     ffts         :      1.85s CPU      2.73s WALL (      15 calls)
     fftw         :     33.18s CPU     33.46s WALL (     416 calls)
     interpolate  :     13.32s CPU     16.18s WALL (      15 calls)
     davcio       :      0.00s CPU      0.13s WALL (       7 calls)
 
     Parallel routines
     fft_scatter  :     10.50s CPU     11.40s WALL (     483 calls)
 
     PWSCF        :  2m17.79s CPU     2m26.04s WALL
 
 
   This run was terminated on:  11: 59: 3  08May2015
 
=------------------------------------------------------------------------------=
   JOB DONE.
=------------------------------------------------------------------------------=

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:

[rahim@ui espresso]$voms-proxy-init --voms magrid
[rahim@ui espresso]$myproxy-init -d -n -s myproxy.magrid.ma

Après soumettre normalement le job.

[rahim@ui espresso] $ glite-wms-job-submit -a -o jobId espresso.jdl $ glite-wms-job-status -i jobId $ glite-wms-job-output -i jobId --dir .

Plus de détails sur [2].

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
[rahim@ui espresso]$ lcg-infosites --vo magrid lfc lfc.magrid.ma
  • Etape 2: Définir la variable d’environnement LFC_HOST:
[rahim@ui espresso]$ export LFC_HOST=lfc.magrid.ma
  • Etape 3: Créer son dossier sur la LFC (vous pouvez le faire une fois pour toute).
[rahim@ui espresso]$ lfc-mkdir -p /grid/magrid/rahim/espresso


  • Etape 4: Supposons alors dans notre cas qu'on veut récupérer tout le dossier de travail du wn ,

on modifié le script espresso.sh pour creer l'archive contenant la dossir de travail de cette manière :

Fichier: espresso.sh
# Date / heure de debut
echo "Execution  espresso.sh `date` on `hostname`"
# Lecture des arguments
prefix=$1
NOW=$(date +%Y-%0m-%0d_%0H%0M)
export OUTPUT_ARCHIVE=Benz_${NOW}.tar.gz
source $VO_MAGRID_SW_DIR/setenv_espresso-5.0.3.sh
pw.x < ${prefix}.pw-in
echo "Préparer le tar "
tar -czvf ${prefix}.tar.gz *
export LFC_HOST=lfc.magrid.ma
export LFC_HOME=/grid/magrid/rahim/espresso
export DPM_HOST=se1.cnrst.magrid.ma
 
#Si le fichier output.dat existe on le copie vers un SE
if [ -f ${prefix}.tar.gz ]; then
echo "Copie de ${prefix}.tar.gz vers $LFC_HOME/$OUTPUT_ARCHIVE "
lcg-cr --vo magrid -d $DPM_HOST -l lfn:$OUTPUT_ARCHIVE file:${prefix}.tar.gz
fi
echo "Fin de l'execution `date` "
  • Etape 5: Soumission du Job

Après soumettre normalement le job.

[rahim@ui espresso] $ glite-wms-job-submit -a -o jobId espresso.jdl $ glite-wms-job-status -i jobId $ glite-wms-job-output -i jobId --dir .
  • Etape 6: Une fois le job est terminé on peut vérifier la présence de notre fichier sur le SE:
[rahim@ui espresso]$ export LFC_HOST=lfc.magrid.ma $export LFC_HOME=/grid/magrid/rahim/espresso $lfc-ls -ll -rw-rw-r-- 1 113 108 143145133 May 08 13:06 Benz_2015-05-08_1206.tar.gz
  • Etape 7: A la fin on le récupère sur le UI:
[rahim@ui espresso]$ lcg-cp --vo magrid lfn:Benz_2015-05-08_1206.tar.gz file:`pwd`/Benz_2015-05-08_1206.tar.gz

Ne pas oublier de supprimer le fichier pour liberer l espace .

[rahim@ui espresso]$ lcg-del -a --vo magrid lfn:/grid/magrid/rahim/Benz_2015-05-08_1206.tar.gz

Job MPI

Pour exécuter espresso en mode MPI , il faut un fichier jdl l'exécutable modifié ainsi que le script pour le transfert de l'output au SE à la fin de l executionrespectivement : , soient espresso-mpi.jdl ,espresso-mpi.sh et hooks.sh:

Fichier: espresso-mpi.jdl
    Executable = "espresso-mpi.sh";
    CpuNumber = 4;
    InputSandbox = {"espresso-mpi.sh","Benz.pw-in","hooks.sh"};
    Arguments = "Benz";
    StdOutput = "stdout.log";
    StdError = "stderr.log";
    OutputSandbox = {"stdout.log", "stderr.log"};
    Requirements = Member("MPI-START", other.GlueHostApplicationSoftwareRunTimeEnvironment)
    && Member("VO-magrid-espresso_v5.0.3",other.GlueHostApplicationSoftwareRunTimeEnvironment);
Fichier: espresso-mpi.sh
#!/bin/bash
source /opt/exp_soft/magrid/espresso-5.0.3/setenv.sh
export prefix=$1
export MPI_FLAVOR=OPENMPI
export MPI_FLAVOR_LOWER=`echo $MPI_FLAVOR | tr '[:upper:]' '[:lower:]'`
eval MPI_PATH=/opt/exp_soft/magrid/espresso-5.0.3/openmpi-1.6.5
eval MPI_OPENMPI_PATH=$MPI_PATH
eval MPI_OPENMPI_MPIEXEC=$MPI_OPENMPI_PATH/bin/mpiexec
eval MPI_OPENMPI_VERSION=1.6
eval I2G_${MPI_FLAVOR}_PREFIX=$MPI_PATH
export I2G_${MPI_FLAVOR}_PREFIX
export PXEXE="${ESPRESSOROOT}/bin/pw.x"
export PX_COMMAND_FOR_MPI="${PXEXE}"
export I2G_MPI_APPLICATION=${PX_COMMAND_FOR_MPI}
export I2G_MPI_APPLICATION_ARGS="-inp ${prefix}.pw-in"
export I2G_MPI_PRE_RUN_HOOK=hooks.sh
export I2G_MPI_POST_RUN_HOOK=hooks.sh
export I2G_MPI_TYPE=$MPI_FLAVOR_LOWER
export I2G_MPI_START_VERBOSE=1
export I2G_MPI_START_DEBUG=1
export RUNMPI=$I2G_MPI_START
$RUNMPI
Fichier: hooks.sh
#!/bin/sh
export DPM_HOST=se1.cnrst.magrid.ma
export LFC_HOME=/grid/magrid/rahim/espresso
export LFC_HOST=lfc.magrid.ma
pre_run_hook () {
 
    return 0
}
post_run_hook () {
    echo "----------------------------------"
    pwd
    echo "----------------------------------"
    echo "Executing post hook."
    NOW=$(date +%Y-%0m-%0d_%0H%0M)
    export OUTPUT_ARCHIVE=${prefix}_${NOW}.tar.gz
    echo "Préparer le tar "
    tar cvzf $OUTPUT_ARCHIVE *
    echo "Copie de $OUTPUT_ARCHIVE vers $LFC_HOME/$OUTPUT_ARCHIVE "
    lcg-cr --vo magrid -d $DPM_HOST -l $LFC_HOME/$OUTPUT_ARCHIVE file://$PWD/$OUTPUT_ARCHIVE
    echo "Finished the post hook."
    return 0
}

Les autres étapes restent les mêmes.

Navigation
Administrateur
Utilisateur
Applications
Autorité de Certification