Changes between Version 50 and Version 51 of Tutorial/JobSubm


Ignore:
Timestamp:
Jun 6, 2008, 2:45:33 PM (17 years ago)
Author:
/C=FR/O=CNRS/OU=UMR8608/CN=Christophe Diarra/emailAddress=diarra@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Tutorial/JobSubm

    v50 v51  
    188188
    189189En gLite 3.1 le WMS (Workload Management System) remplace le RB. Il comprend deux services :
    190 le WMS lui-même et le Logging and Bookkeeping service (LB). Ces deux services peuvent
    191 être sur des machines séparés. C'est pourquoi votre jobId contient le nom du LB quit être différent de celui du WMS utilisé.
     190le WMS lui-même et le Logging and Bookkeeping service (LB). Ces deux services peuvent être sur des machines séparées.
     191C'est pourquoi votre jobId contient le nom du LB quit être différent de celui du WMS utilisé.
    192192
    193193Le WMS permet une meilleure gestion des jobs : meilleure temps de réponse, meilleure tenue de la charge.
     
    213213{{{
    214214diarra@ipngrid01 ~/work]$ glite-wms-job-list-match -a HelloWorld.jdl
     215
    215216Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
    216217==========================================================================
     
    226227{{{
    227228diarra@ipngrid01 ~/work]$ glite-wms-job-submit -o jobId -a HelloWorld.jdl
     229
    228230Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
    229231====================== glite-wms-job-submit Success ======================
     
    247249=== La délégation explicite de proxy au WMSProxy ===
    248250
    249 Nous avons déjà utilisé la délégation automatique (simple et pratique) plus haut avec l'option -a des commandes glite-wms-job-submit et glite-wms-job-list-match. Mais l'inconvenient de cette méthode est que la délégation est repétée pour chaque job. Avec la délégation explicite, la délégation est faite une seule fois, ce qui est plus performant car les
     251Nous avons déjà utilisé la délégation automatique (simple et pratique) plus haut avec l'option -a des commandes glite-wms-job-submit et glite-wms-job-list-match. Mais l'inconvenient de cette méthode est que la délégation est répétée pour chaque job. Avec la délégation explicite, la délégation est faite une seule fois, ce qui est plus performant car les
    250252jobs suivants seront soumis plus rapidement.
    251253
     
    295297}}}
    296298
    297 Note: A cause d'un bug, si le UI est configuré avec une liste de WMS, glite-wms-job-delegate-proxy ne delegera le proxy qu'a un seul de la liste. Ceci est une limitation de la delegation explicite.
     299Note: A cause d'un bug, si le UI est configuré avec une liste de WMS, glite-wms-job-delegate-proxy ne déléguera le proxy qu'a un seul de la liste. Ceci est une limitation de la délégation explicite.
    298300
    299301
     
    321323{{{
    322324[diarra@ipngrid01 ~/work]$ glite-wms-job-status -i jobId
    323 (ou glite-wms-job-status https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw)
     325ou
     326[diarra@ipngrid01 ~/work]$ glite-wms-job-status https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw
    324327
    325328*************************************************************
     
    334337}}}
    335338
    336 Le job est terminé, on peut récupérer les résultats (OutputSandbox)avec glite-wms-job-output :
     339Le status 'Done (Success) indique que le job est terminé, on peut récupérer les résultats (OutputSandbox)avec glite-wms-job-output :
    337340
    338341{{{
    339342[diarra@ipngrid01 ~/work]$ glite-wms-job-output -i jobId
    340 (ou glite-wms-job-output https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw)
     343ou
     344[diarra@ipngrid01 ~/work]$glite-wms-job-output https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw
    341345
    342346Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
     
    357361=== Tuer un job ===
    358362
    359 [diarra@ipngrid01 ~/work]$ glite-wms-job-cancel <jobID>
    360 ou
    361 glite-wms-job-cancel -i <jobIdFile>
     363Faire glite-wms-job-cancel <jobID> ou glite-wms-job-cancel -i <jobIdFile>
    362364
    363365Exemple:
     
    367369
    368370=== Obtenir des détails (logging information) sur un job ===
     371
    369372Pour avoir des détails sur la vie d'un job, utiliser la commande glite-wms-job-logging-info <jobID> . Pour un mode plus verbeux, utiliser les option -v 1 ou -v 2 ou -v 3
    370373
     
    375378=== Collection de jobs (bulk submission) ===
    376379
    377 Vous pouvez utiliser le bulk submission pour soumettre une collections de jobs indépendants. Pour cela, il faut mettre tous les .jdl dans un même directory et utiliser l'option --collection avec glite-wms-job-submit. Ce mécanisme est
    378 très performant et préférable à la soumission individuel d'un grand nombre de jobs.
     380Vous pouvez utiliser le bulk submission pour soumettre une collections de jobs indépendants. Pour cela, il faut mettre tous les .jdl dans un même directory et utiliser l'option --collection avec glite-wms-job-submit en donnant comme argument le nom du
     381directory contenant les .jdl. Ce mécanisme est très performant et préférable à la soumission individuel d'un grand nombre de jobs.
    379382
    380383Ici nous avons par exemple trois fichiers .jdl dans le directory jdl :
     
    387390}}}
    388391
    389 Pour soumettre la collection des 3 jobs, faire :
     392Pour soumettre la collection des 3 jobs dans le sous-directory ./jdl, faire :
    390393
    391394{{{
     
    456459
    457460{{{
    458 [diarra@ipngrid01 ~/work]$ ls /home/diarra/JobOutput/diarra_6zqZkrgnQ2vYkPaeNabbiQ
    459 ids_nodes.map  Node_job1_jdl  Node_job2_jdl  Node_job3_jdl
     461[diarra@ipngrid01 ~/work]$ ls -F /home/diarra/JobOutput/diarra_6zqZkrgnQ2vYkPaeNabbiQ
     462Node_job1_jdl/  Node_job2_jdl/  Node_job3_jdl/ ids_nodes.map
    460463
    461464[diarra@ipngrid01 ~/work]$ ls /home/diarra/JobOutput/diarra_6zqZkrgnQ2vYkPaeNabbiQ/Node_job1_jdl/
     
    484487fonctionnalité car elle est augmente la charge du WMS.
    485488
    486 Dans l'exemple ci-dessous nous allons lancer le job perusal.jdl et récupérer des fichiers pendant que le job tourne. Il y a un upload toutes les 2 minutes (120 secondes) du WN vers le WMS.
     489Dans l'exemple ci-dessous nous allons lancer le job perusal.jdl et récupérer des fichiers pendant que le job tourne. Nous avons choisi ici un upload toutes les 2 minutes (120 secondes) du WN vers le WMS.
    487490
    488491{{{
     
    493496StdError      = "std.err";
    494497InputSandbox = {"perusal.sh"};
    495 OutputSandbox = {"std.out","std.err", "perusal.log"};
     498OutputSandbox = {"std.out", "std.err", "perusal.log"};
    496499PerusalFileEnable = true;
    497500PerusalTimeInterval = 120;
     
    506509{{{
    507510[diarra@ipngrid01 ~/work]$ glite-wms-job-submit -o pjid -a perusal.jdl
     511
    508512https://grid02.lal.in2p3.fr:9000/1nX3gfh6Ba9NLtxy5FKe2g
    509513The job identifier has been saved in the following file:
     
    515519{{{
    516520[diarra@ipngrid01 ~/work]$ glite-wms-job-perusal --set -f std.err -f std.out -f perusal.log -i pjid
     521
    517522Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
    518523====================== glite-wms-job-perusal Success ======================
     
    522527}}}
    523528
    524 On récupère par exemple le fichier perusal.log :
     529Pour récupère par exemple le fichier perusal.log :
    525530
    526531{{{
     
    538543
    539544Ici, le fichier se trouvera dans /home/diarra/JobOutput/diarra_1nX3gfh6Ba9NLtxy5FKe2g . Le nom du fichier contient en plus
    540 la fenêtre de temps couverte. A chaque récupération, un nouveau fichier est créé. Après plusieurs inspections des fichiers, on a par exemple :
     545la fenêtre de temps couverte. A chaque récupération, un nouveau fichier est créé. Après plusieurs inspections des fichiers de notre exemple, on a :
    541546
    542547
     
    554559Si l'option --nodisplay n'est pas utilisé, le fichier sera en plus affiché à l'écran (pas toujours
    555560commode). Par ailleurs à chaque récupération, seule le delta depuis le dernier upload est transmis.
    556 Pour récupérer à chaque fois l'intégralité du fichier, utiliser l'option --all de glite-wms-job-perusal.
    557 
    558 L'option --unset de glite-wms-job-perusal permet de desactiver le Job Perusal :
     561Pour récupérer à chaque fois l'intégralité du fichier, il faut utiliser l'option --all de glite-wms-job-perusal.
     562
     563L'option --unset de glite-wms-job-perusal permet de désactiver le Job Perusal :
    559564
    560565{{{
     
    570575}}}
    571576                                                             
    572 === Le renouvellement automatique de proxy ===
     577=== Le renouvelement automatique de proxy ===
    573578
    574579Pour des raisons de sécurité, il est recommandé de ne pas crée des proxies de plusieurs jours. Par ailleurs la durée de l'extension VOMS du proxy est limitée par les VOs, en général à 24h. Si un job dure plus longtemps que la
     
    585590}}}
    586591
    587 Avant d'enregistrer son proxy, en crér un valide :
     592Avant d'enregistrer son proxy, en créer un valide :
    588593
    589594{{{
     
    597602}}}
    598603
    599 Pour enregistrer son proxy dans le serveir myprosy :
     604Pour enregistrer son proxy dans le serveur myprosy :
    600605
    601606{{{
     
    614619{{{
    615620[diarra@ipngrid01 work]$ myproxy-info -s myproxy.grif.fr -d
     621
    616622username: /O=GRID-FR/C=FR/O=CNRS/OU=IPNO/CN=Christophe Diarra
    617623owner: /O=GRID-FR/C=FR/O=CNRS/OU=IPNO/CN=Christophe Diarra
     
    620626
    621627Ensuite il suffit de soumettre un job avec un proxy VOMS valide. Même si le job dure plusieurs jours, son proxy
    622 n'expirera pas. Bien sûr il faut que le temps d'exécution job n'excède la durée de vie totale du proxy enregistré sur le serveur myproxy.
     628n'expirera pas. Bien sûr il faut que le temps d'exécution du job n'excède pas la durée de vie totale du proxy enregistré sur le serveur myproxy.
    623629
    624630=== Ressoumission automatique ===
    625631
    626632Le WMS peut resoumettre automatiquement les jobs s'ils sont 'aborted' par la grille. Deux types de ressoumission sont disponibles en gLite 3.1 WMS:
    627  * deep resubmission : pour les jobs échouent qui après démarrage sur un WN
     633 * deep resubmission : pour les jobs qui échouent après démarrage sur un WN
    628634 * shallow resubmission : dans les autres cas
    629635
     
    631637de tentatives de ressoumission des jobs, respectivement pour les modes deep et shallow. Une valeur à zéro (0) dévalide la resoumission.
    632638
    633 Il est recommandé dévalider le deep resubmission car le WMS peut resoumettre unjob qu'il croit (à tort) aborted ou bien un job qui a échoué peut déjà avoir
    634 effectué un certains nombre d'opérations incompatibles avec un deuxième lancement. Par contre il est recommandé d'utiliser shallow resubmission pour donner plus
    635 de chance à votre job d'être soumis.
    636 
    637 Dans l'exemple ci-dessous, on devalide le deep resubmission et on limite les
    638 tentatives de shallow resubmission à 3:
     639Il est recommandé dévalider le deep resubmission car le WMS peut resoumettre un job qu'il croit (à tort) aborted ou bien un job ayant échoué peut déjà avoir effectué un certains nombre d'opérations incompatibles avec un deuxième lancement. Par contre il est recommandé d'utiliser shallow resubmission pour donner plus de chance à votre job de s'exécuter.
     640
     641Dans l'exemple ci-dessous, on devalide le deep resubmission et on limite les tentatives de shallow resubmission à 3:
    639642
    640643RetryCount = 0;
     
    644647
    645648Consulter les documents ci-dessous pour plus d'informations. Vous pourrez apprendre par exemple dans le 1er document
    646 (comment gLite 3.1 User Guide) :
     649(comment gLite 3.1 User Guide) comment :
    647650
    648651 * utiliser GridFTP pour le transfert des SandBox
    649  * utiliser les DAG (direct acyclic graphs) : jobs dépendants
    650  * utiliser les Parametric jobs : collection de josb identiques sauf pour un parametre d'exécution.
     652 * utiliser les DAG (direct acyclic graphs) : jobs dépendants qui doivent s'exécuter dans un certain ordre
     653 * utiliser les Parametric jobs : collection de jobs identiques à tous points sauf pour un parametre d'exécution
    651654
    652655gLite 3.1 User Guide: