AkaiKKR

De MaGridWiki
Aller à : Navigation, rechercher

N.B :

  • Ce tutoriel explique un exemple d’exécution de AkaiKKR 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).


Sommaire

Description de AkaiKKR

  • AkaiKKR (MACHIKANEYAMA) is a software package used for first-principles calculation of the electronic structures of metals, semiconductors and compounds, within the framework of the local density approximation or generalized gradient approximation (LDA/GGA) of density functional theory.

Description des inputs/outputs

  • Inputs: il faut au préalable préparer les inputs à travers, la génération de l’exécutable "specx" selon la structure à analyser pour notre exemple on utilise "Fe.inp".

Utiliser WinSCP (utilisateurs windows) pour transférer le dossier source et le fichier Makefile pour générer l’exécutable "specx" :

AkaiKKR.png

Sur votre compte ui utiliser la commande make pour générer le "specx":

[talhaoui@ui ~]$ make [talhaoui@ui ~]$ ll total 524 -rw-rw-r-- 1 talhaoui talhaoui 1018 Jan 24 16:43 Fe.inp -rw-rw-r-- 1 talhaoui talhaoui 3689 Apr 20 2011 makefile drwxrwxr-x 2 talhaoui talhaoui 12288 Jun 13 10:16 source -rwxrwxr-x 1 talhaoui talhaoui 511972 Jun 13 10:16 specx

Vous pouvez récupérer les éléments de cette exemple à partir du serveur ftp : ftp://www2.cnrst.ma/pub/akaikkr

Maintenant il faut préparer le JDL et les scripts à exécuter sur la grille, l’exécution de Akaikkr se fait à travers deux phases : (1) - la phase "go", et (2) la phase "dos", sachant que l'input de la phase (2) est un output de la phase (1), pour ce genre de calcul, il faut utiliser le type de job "DAG", qui traite les dépendances automatiquement.

  • Inputs de go:

Le fichier input principale de Fe : "Fe_go.inp":

Fichier: Fe_go.inp
c--------input data----------
c  go    file
go   Fe
c-----------------------------
c  brvtyp   a        c/a    b/a    alpha   beta    gamma
bcc  5.3,1,1,90,90,90,
c---------------------------------------------------------
c  edelt   ewidth  reltyp  sdftyp  magtyp  record
0.001    1.2     sra      mjw    mag     init
c--------------------------------------------------------
c  outtyp   bzqlty  maxitr   pmix
update     4      1000    0.024
c---------------------------------------------------------
c   ntyp (nbr atom principal)
1
c-----------------------------------------------------
c   type  ncmp  rmt   field   l_max  anclr  conc
Fe   1     0      0       2     26     100
 
c-----------------------------------------------------
c   natm (nbr atom maille )
1
c---------------------------------------------------
c  atmicx                    atmtyp
0       0       0       Fe
c  0.5    0.5     0.5      FeNi    dans le cas SC
c-------------------------------------------

Le script d’exécution sur la grille de specx pour la phase go "go.sh":

Fichier: go.sh
chmod +x specx
./specx<$1.inp>go.out
  • Inputs de dos:

Le fichier input principale de Fe : "Fe_dos.inp":

Fichier: Fe_dos.inp
c--------input data----------
c  dos    file
dos   Fe
c-----------------------------
c  brvtyp   a        c/a    b/a    alpha   beta    gamma
bcc  5.3,1,1,90,90,90,
c---------------------------------------------------------
c  edelt   ewidth  reltyp  sdftyp  magtyp  record
0.001    1.2     sra      mjw    mag     init
c--------------------------------------------------------
c  outtyp   bzqlty  maxitr   pmix
update     4      1000    0.024
c---------------------------------------------------------
c   ntyp (nbr atom principal)
1
c-----------------------------------------------------
c   type  ncmp  rmt   field   l_max  anclr  conc
Fe   1     0      0       2     26     100
 
c-----------------------------------------------------
c   natm (nbr atom maille )
1
c---------------------------------------------------
c  atmicx                    atmtyp
0       0       0       Fe
c  0.5    0.5     0.5      FeNi    dans le cas SC
c-------------------------------------------

Le script d’exécution sur la grille de specx pour la phase dos "dos.sh":

Fichier: dos.sh
chmod +x specx
./specx<$1.inp>dos.out
  • Fichier JDL:

Le fichier descriptif de l’exécution des deux phases sur la grille "dag.jdl"

Fichier: dag.jdl
Type="dag";
InputSandbox = {"dos.sh","Fe_dos.inp","specx"};
nodes = [
        go = [
                description = [
                            JobType = "Normal";
                            Executable = "go.sh";
                            Arguments = "Fe_go";
                            InputSandbox = {"go.sh","Fe_go.inp","specx"};
                            StdOutput = "go.out";
                            StdError = "go.err";
                            OutputSandbox = {"Fe","go.out","go.err","Fe.info","t.dat","c.dat","i.dat"};
                            ShallowRetryCount = 1;
                            MyProxyServer = "myproxy.magrid.ma";
                ];
        ];
        dos = [
                description = [
                            JobType = "Normal";
                            Executable = "dos.sh";
                            InputSandbox = {root.InputSandbox[0],root.InputSandbox[1],root.InputSandbox[2],root.nodes.go.description.OutputSandbox[0]};
                            Arguments = "Fe_dos";
                            StdOutput = "dos.out";
                            StdError = "dos.err";
                            OutputSandbox = {"Fe","dos.out","dos.err","Fe.info","t.dat","c.dat","i.dat"};
                            ShallowRetryCount = 1;
                            MyProxyServer = "myproxy.magrid.ma";
                ];
        ];
    ];
MyProxyServer = "myproxy.magrid.ma";
Dependencies = { {go,dos} };

Vous pouvez récupérer ces fichiers d'inputs de l'exemple "Fe" à partir du ftp : ftp://www2.cnrst.ma/pub/akaikkr, et puis vous préparez votre structure en suivant ce même modèle.

  • Outputs: std.out et std.err qui sont simplement les sorties standard et d'erreurs, et la sortie qui sera talhaoui_Ktnd6XjCtSQ_9kt7lGcS7w qui contient les dossiers des 2 phases "go" et "dos".
  • Ci-dessous une partie de sortie de plase dos "dos.out" (fichier inclus dans le sous répertoire dos):
Fichier: dos.out
17-Jun-2014
    meshr  mse    ng     mxl
      400    200     15      3
 
   data read in
   go=dos  file=Fe
   brvtyp=bcc  a=  5.30000  c/a= 1.00000  b/a= 1.00000
   alpha= 90.0  beta= 90.0  gamma= 90.0
   edelt=1.0E-03  ewidth=  1.200  reltyp=sra    sdftyp=mjw        magtyp=mag
   record=init  outtyp=quit    bzqlty=4   maxitr=  1  pmix=0.02400
   ntyp= 1  natm= 1  ncmpx= 1
 
   complex energy mesh
   1( -0.5970, 0.0010)   2( -0.5910, 0.0010)   3( -0.5849, 0.0010)
   4( -0.5789, 0.0010)   5( -0.5729, 0.0010)   6( -0.5668, 0.0010)
   7( -0.5608, 0.0010)   8( -0.5548, 0.0010)   9( -0.5487, 0.0010)
  10( -0.5427, 0.0010)  11( -0.5367, 0.0010)  12( -0.5307, 0.0010)
  13( -0.5246, 0.0010)  14( -0.5186, 0.0010)  15( -0.5126, 0.0010)
  16( -0.5065, 0.0010)  17( -0.5005, 0.0010)  18( -0.4945, 0.0010)
  19( -0.4884, 0.0010)  20( -0.4824, 0.0010)  21( -0.4764, 0.0010)
  22( -0.4704, 0.0010)  23( -0.4643, 0.0010)  24( -0.4583, 0.0010)
  25( -0.4523, 0.0010)  26( -0.4462, 0.0010)  27( -0.4402, 0.0010)
.........

Initialiser le voms

Au cas le proxy du voms est expiré il faut l’initialiser à nouveau afin de soumettre le job:

[talhaoui@ui Fe]$ voms-proxy-init --voms magrid Enter GRID pass phrase: Your identity: /C=MA/O=MaGrid/OU=CNRST/CN=Nabil Talhaoui Creating temporary proxy .......................... Done Contacting voms.magrid.ma:15000 [/C=MA/O=MaGrid/OU=CNRST/CN=voms.magrid.ma] "magrid" Done Creating proxy .......................................................... Done Your proxy is valid until Wed Jun 18 23:51:33 2014

Si vous estimer que votre job peux consommer plus de 12h en temps d’exécution il faut absolument initialiser en plus du proxy un long proxy "MyProxy" qui peut aller jusqu'au 7 jours, à renouveler avant son expiration si le job n'as pas fini:

[talhaoui@ui Fe]$ myproxy-init -d -n -s myproxy.ct.infn.it Your identity: /C=MA/O=MaGrid/OU=CNRST/CN=Nabil Talhaoui Enter GRID pass phrase for this identity: Creating proxy .............................................................................. Done Proxy Verify OK Your proxy is valid until: Wed Jun 25 11:55:15 2014 A proxy valid for 168 hours (7.0 days) for user /C=MA/O=MaGrid/OU=CNRST/CN=Nabil Talhaoui now exists on myproxy.ct.infn.it.

Soumettre le job

Ce job est soumis sur la grille en utilisant la commande

[talhaoui@ui Fe]$ glite-wms-job-submit -a -o dagId dag.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/Ktnd6XjCtSQ_9kt7lGcS7w The job identifier has been saved in the following file: /home/talhaoui/specx/Fe/dagId ==========================================================================

L'option -o dagId permet de sauvegarder l'ID du job soumis dans le fichier dagId. 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 :

[talhaoui@ui Fe]$ glite-wms-job-status -i dagId ======================= glite-wms-job-status Success ===================== BOOKKEEPING INFORMATION: Status info for the Job : https://wms2.magrid.ma:9000/Ktnd6XjCtSQ_9kt7lGcS7w Current Status: Running Destination: dagman Submitted: Wed Jun 18 11:59:18 2014 WEST ========================================================================== - Nodes information for: Status info for the Job : https://wms2.magrid.ma:9000/OuF_nMCA9nX8qzfEGMqVlg Current Status: Running Status Reason: unavailable Destination: atlas-ce1.cnrst.magrid.ma:8443/cream-pbs-magrid Submitted: Wed Jun 18 11:59:18 2014 WEST ========================================================================== Status info for the Job : https://wms2.magrid.ma:9000/mauS9A-nPLn73IncEjcVUA Current Status: Submitted Submitted: Wed Jun 18 11:59:18 2014 WEST ==========================================================================

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é

Et si vous le remarquez le job lance les deux programmes, le premier qui correspond à la phase "go" en état de Running et l'autre qui correspond à la phase "dos" en état de Submitted. Ce dernier attend les résultats du premier pour s’exécuter.

  • Après l'exécution de la phase "go" avec succès la phase "dos" se démarre:
[talhaoui@ui Fe]$ glite-wms-job-status -i dagId ======================= glite-wms-job-status Success ===================== BOOKKEEPING INFORMATION: Status info for the Job : https://wms2.magrid.ma:9000/Ktnd6XjCtSQ_9kt7lGcS7w Current Status: Running Destination: dagman Submitted: Wed Jun 18 11:59:18 2014 WEST ========================================================================== - Nodes information for: Status info for the Job : https://wms2.magrid.ma:9000/OuF_nMCA9nX8qzfEGMqVlg Current Status: Done (Success) Logged Reason(s): - job completed - Job Terminated Successfully Exit code: 0 Status Reason: Job Terminated Successfully Destination: atlas-ce1.cnrst.magrid.ma:8443/cream-pbs-magrid Submitted: Wed Jun 18 11:59:18 2014 WEST ========================================================================== Status info for the Job : https://wms2.magrid.ma:9000/mauS9A-nPLn73IncEjcVUA Current Status: Running Status Reason: unavailable Destination: ce2.cnrst.magrid.ma:8443/cream-pbs-magrid Submitted: Wed Jun 18 11:59:18 2014 WEST ==========================================================================
  • Après l'exécution de la phase "dos" on aura le status suivant:
[talhaoui@ui Fe]$ glite-wms-job-status -i dagId ======================= glite-wms-job-status Success ===================== BOOKKEEPING INFORMATION: Status info for the Job : https://wms2.magrid.ma:9000/Ktnd6XjCtSQ_9kt7lGcS7w Current Status: Done (Success) Exit code: 0 Status Reason: DAG successfully completed Destination: dagman Submitted: Wed Jun 18 11:59:18 2014 WEST ========================================================================== - Nodes information for: Status info for the Job : https://wms2.magrid.ma:9000/OuF_nMCA9nX8qzfEGMqVlg Current Status: Done (Success) Logged Reason(s): - job completed - Job Terminated Successfully Exit code: 0 Status Reason: Job Terminated Successfully Destination: atlas-ce1.cnrst.magrid.ma:8443/cream-pbs-magrid Submitted: Wed Jun 18 11:59:18 2014 WEST ========================================================================== Status info for the Job : https://wms2.magrid.ma:9000/mauS9A-nPLn73IncEjcVUA Current Status: Done (Success) Logged Reason(s): - job completed - Job Terminated Successfully Exit code: 0 Status Reason: Job Terminated Successfully Destination: ce2.cnrst.magrid.ma:8443/cream-pbs-magrid Submitted: Wed Jun 18 11:59:18 2014 WEST ==========================================================================

Cela signifie que les 2 phases sont exécutées avec succès et les outputs sont disponibles pour téléchargement à partir de la grille.

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 :

[talhaoui@ui Fe]$ glite-wms-job-output -i dagId --dir . Connecting to the service https://wms2.magrid.ma:7443/glite_wms_wmproxy_server ================================================================================ JOB GET OUTPUT OUTCOME Output sandbox files for the DAG/Collection : https://wms2.magrid.ma:9000/Ktnd6XjCtSQ_9kt7lGcS7w have been successfully retrieved and stored in the directory: /home/talhaoui/specx/Fe/talhaoui_Ktnd6XjCtSQ_9kt7lGcS7w ================================================================================

Les fichiers de l'OutputSandbox du job dont l'ID est contenu dans dagId sont sauvegardés dans le répertoire spécifié par l'option --dir, dans un sous-répertoire au nom généré aléatoirement commençant par le username.
Pour notre exemple, le résultat récupéré se trouve dans le répertoire talhaoui_Ktnd6XjCtSQ_9kt7lGcS7w :

[talhaoui@ui Fe]$ cd talhaoui_Ktnd6XjCtSQ_9kt7lGcS7w/ [talhaoui@ui talhaoui_Ktnd6XjCtSQ_9kt7lGcS7w]$ ll total 12 drwxr-xr-x 2 talhaoui talhaoui 4096 Jun 18 12:29 dos drwxr-xr-x 2 talhaoui talhaoui 4096 Jun 18 12:29 go -rw-rw-r-- 1 talhaoui talhaoui 386 Jun 18 12:29 ids_nodes.map

Le sous répertoire "go" contient les outputs de la phase "go", et le sous répertoire "dos" contient les outputs de la phase "dos"

[talhaoui@ui talhaoui_Ktnd6XjCtSQ_9kt7lGcS7w]$ cd dos/ [talhaoui@ui dos]$ ll total 88 -rw-rw-r-- 1 talhaoui talhaoui 16844 Jun 18 12:29 c.dat -rw-rw-r-- 1 talhaoui talhaoui 0 Jun 18 12:29 dos.err -rw-rw-r-- 1 talhaoui talhaoui 8469 Jun 18 12:29 dos.out -rw-rw-r-- 1 talhaoui talhaoui 27144 Jun 18 12:29 Fe -rw-rw-r-- 1 talhaoui talhaoui 44 Jun 18 12:29 Fe.info -rw-rw-r-- 1 talhaoui talhaoui 10836 Jun 18 12:29 i.dat -rw-rw-r-- 1 talhaoui talhaoui 10772 Jun 18 12:29 t.dat
Navigation
Administrateur
Utilisateur
Applications
Autorité de Certification