Changes between Version 52 and Version 53 of Tutorial/JobSubm


Ignore:
Timestamp:
Jun 6, 2008, 11:53:36 PM (17 years ago)
Author:
/C=FR/O=CNRS/OU=UMR8607/CN=Michel Jouvin/emailAddress=jouvin@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Tutorial/JobSubm

    v52 v53  
    183183Les informations officielles à jour pour l'utilisation de MPI sur la grille EGEE sont disponibles sur le site [http://egee-uig.web.cern.ch/egee-uig/production_pages/MPIJobs.html EGEE UIG]. Plus de détails sont disponibles sur le site du [http://www.grid.ie/mpi/wiki MPI Working Group].
    184184
    185 == Soumission de jobs via le WMS : exemples et quelques nouvautés ==
    186 
    187 === Introduction ===
    188 
    189 En 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 être sur des machines séparées.
    191 C'est pourquoi votre jobId contient le nom du LB quit être différent de celui du WMS utilisé.
    192 
    193 Le WMS permet une meilleure gestion des jobs : meilleure temps de réponse, meilleure tenue de la charge.
    194 
    195 Les commandes edg-job-* qui utilisaient le RB peuvent donc être avantageusement remplacées par leurs équivalents glite-wms-job-* . Pour avoir de l'aide sur une commande, utiliser man ou l'option --help de la commande (Exemple: man glite-wms-job-submit ou glite-wms-job-submit --help). Par ailleurs, il est recommandé d'utiliser l'option -o avec
    196 la commande glite-wms-job-submit pour mémoriser les jobIds dans un seul ou plusieurs fichiers. L'option -i des autres commandes glite-wms-job-* permet de relire les jobIds dans un de ces fichiers.
    197 
    198 Chaque job soumis au WMS doit être associé à un proxy délégué au WMSProxy server
    199 par l'utilisateur. Le WMProxy (un composant du WMS) s'en sert pour toute interaction avec les autres services grille en rapport le job.
    200 
    201 Le proxy de l'utilisateur peut être délégué au WMS (WMSProxy), soit automatiquement (option -a) soit explicitement (option -d).
    202 Si vous soumettez des centaines de jobs, il est préférable d'utiliser la délégation explicite car l'auto-délégation est plus consommatrice de ressources.
    203 
    204 
    205 Dans les différents exemples, nous utiliserons la délégation automatique. Un paragraphe sera consacré à la délégation explicite.
    206 
    207 Le WMS utilisé est celui de GRIF (wms.grif.fr i.e grid09.lal.in2p3.fr). Le LB associé est grid02.lal.in2p3.fr
    208 
    209 === Soumission d'un job ===
    210 
    211 On peut vérifier d'abord (facultatif) qu'il n'y a pas d'erreur dans le jdl et afficher la liste des CE candidats pour le job.
    212 
    213 {{{
    214 diarra@ipngrid01 ~/work]$ glite-wms-job-list-match -a HelloWorld.jdl
    215 
    216 Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
    217 ==========================================================================
    218                      COMPUTING ELEMENT IDs LIST
    219  The following CE(s) matching your job requirements have been found:
    220         *CEId*
    221  - ipnls2001.in2p3.fr:2119/jobmanager-pbs-ipno
    222 ==========================================================================
    223 }}}
    224 
    225 Pour soumettre un job, utiliser glite-wms-job-submit :
    226 
    227 {{{
    228 diarra@ipngrid01 ~/work]$ glite-wms-job-submit -o jobId -a HelloWorld.jdl
    229 
    230 Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
    231 ====================== glite-wms-job-submit Success ======================
    232 The job has been successfully submitted to the WMProxy
    233 Your job identifier is:
    234 https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw
    235 The job identifier has been saved in the following file:
    236 /home/diarra/work/jobId
    237 ==========================================================================
    238 
    239 [diarra@ipngrid01 ~/work]$ cat jobId
    240 ###Submitted Job Ids###
    241 https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw
    242 }}}
    243 
    244 === La delegation automatique de proxy au WMSProxy ===
    245 
    246 Il suffit d'utiliser l'option -a comme vu ci-dessous avec les commandes
    247 glite-wms-job-submit ou glite-wms-job-list-match.
    248 
    249 === La délégation explicite de proxy au WMSProxy ===
    250 
    251 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 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
    252 jobs suivants seront soumis plus rapidement.
    253 
    254 Pour déléguer explicitement un proxy au WMProxy, la commande à utiliser est :
    255 glite-wms-job-delegate-proxy -d <delegID>
    256 
    257 <delegID> est un nom (une chaine) choisi par l'utilisateur. Les futures invocations de glite-wms-job-submit et glite-wms-job-list-match peuvent bypasser la délégation du proxy avec l'option -d <delegID> .
    258 
    259 Par exemple, pour déléguer un proxy (qu'on nomme ici mydelegID):
    260 
    261 {{{
    262 [diarra@ipngrid01 ~/work]$ glite-wms-job-delegate-proxy -d mydelegID
    263 
    264 Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
    265 ================== glite-wms-job-delegate-proxy Success ==================
    266 Your proxy has been successfully delegated to the WMProxy:
    267 https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
    268 with the delegation identifier: mydelegID
    269 ==========================================================================
    270 }}}
    271 
    272 On peut alors soumettre un job en utilisant le <delegID> mydelegID :
    273 
    274 {{{
    275 [diarra@ipngrid01 ~/work]$ glite-wms-job-submit -d mydelegID HelloWorld.jdl
    276 
    277 Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
    278 ====================== glite-wms-job-submit Success ======================
    279 The job has been successfully submitted to the WMProxy
    280 Your job identifier is:
    281 https://grid02.lal.in2p3.fr:9000/ro9Lu7b0CtgKAYhua0HZ2A
    282 ==========================================================================
    283 }}}
    284 
    285 L'option -a de glite-wms-job-delegate-proxy permet de demander au système de choisir pour nous un <delegID> :
    286 
    287 {{{
    288 [diarra@ipngrid01 ~/work]$ glite-wms-job-delegate-proxy -a
    289 
    290 Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
    291 ================== glite-wms-job-delegate-proxy Success ==================
    292 Your proxy has been successfully delegated to the WMProxy:
    293 https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
    294 
    295 with the delegation identifier: cFdr8WvkFirUHQs2sUpyGQ
    296 ==========================================================================
    297 }}}
    298 
    299 Note: 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.
    300 
    301 
    302 === Status des jobs / Récupération des outputs (OutpuSandbox) ===
    303 
    304 Pour connaître le status d'un job :
    305 
    306 {{{
    307 [diarra@ipngrid01 ~/work]$ glite-wms-job-status -i jobId
    308 ou
    309 [diarra@ipngrid01 ~/work]$ glite-wms-job-status https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw
    310 
    311 *************************************************************
    312 BOOKKEEPING INFORMATION:
    313 Status info for the Job : https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw
    314 Current Status:     Scheduled
    315 Status Reason:      Job successfully submitted to Globus
    316 Destination:        ipnls2001.in2p3.fr:2119/jobmanager-pbs-ipno
    317 Submitted:          Tue Jun  3 16:27:26 2008 CEST
    318 *************************************************************
    319 }}}
    320 
    321 Attendre que le job soit Running puis Done (Success) pour pouvour récupérer les résultats avec glite-wms-job-status :
    322 
    323 {{{
    324 [diarra@ipngrid01 ~/work]$ glite-wms-job-status -i jobId
    325 ou
    326 [diarra@ipngrid01 ~/work]$ glite-wms-job-status https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw
    327 
    328 *************************************************************
    329 BOOKKEEPING INFORMATION:
    330 Status info for the Job : https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw
    331 Current Status:     Done (Success)
    332 Exit code:          0
    333 Status Reason:      Job terminated successfully
    334 Destination:        ipnls2001.in2p3.fr:2119/jobmanager-pbs-ipno
    335 Submitted:          Tue Jun  3 16:27:26 2008 CEST
    336 *************************************************************
    337 }}}
    338 
    339 Le status 'Done (Success) indique que le job est terminé, on peut récupérer les résultats (OutputSandbox)avec glite-wms-job-output :
    340 
    341 {{{
    342 [diarra@ipngrid01 ~/work]$ glite-wms-job-output -i jobId
    343 ou
    344 [diarra@ipngrid01 ~/work]$glite-wms-job-output https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw
    345 
    346 Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
    347 ================================================================================
    348                         JOB GET OUTPUT OUTCOME
    349 Output sandbox files for the job:
    350 https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw
    351 have been successfully retrieved and stored in the directory:
    352 /home/diarra/JobOutput/diarra_Rw0lve7pSId8-DBP2jiatw
    353 ================================================================================
    354 
    355 [diarra@ipngrid01 ~/work]$ ls -l /home/diarra/JobOutput/diarra_Rw0lve7pSId8-DBP2jiatw
    356 total 0
    357 -rw-r--r--  1 diarra sii  0 Jun  3 16:51 std.err
    358 -rw-r--r--  1 diarra sii 12 Jun  3 16:51 std.out
    359 }}}
    360 
    361 === Tuer un job ===
    362 
    363 Faire glite-wms-job-cancel <jobID> ou glite-wms-job-cancel -i <jobIdFile>
    364 
    365 Exemple:
    366 {{{
    367 [diarra@ipngrid01 ~/work]$ glite-wms-job-cancel https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw
    368 }}}
    369 
    370 === Obtenir des détails (logging information) sur un job ===
    371 
    372 Pour 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
    373 
    374 {{{
    375 [diarra@ipngrid01 ~/work]$ glite-wms-job-logging-info -v 2 https://grid02.lal.in2p3.fr:9000/1TEI3X2ZtLJ5SEyqrZ4B8A
    376 }}}
     185== Fonctionnalités Avancées ==
     186
     187''Note : les fonctionnalités décrites ici ne s'applique qu'au gLite WMS et ne sont pas pris en charge par l'ancien LCG RB.''
    377188
    378189=== Collection de jobs (bulk submission) ===
    379190
    380 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 en donnant comme argument le nom du
     191La ''bulk submission'' permet de soumettre une collection de jobs indépendants en une seule commande. 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
    381192directory contenant les .jdl. Ce mécanisme est très performant et préférable à la soumission individuel d'un grand nombre de jobs.
    382193
     
    455266}}}
    456267
    457 Les résultats ont été enregistrés dans /home/diarra/JobOutput/diarra_6zqZkrgnQ2vYkPaeNabbiQ. Nous y retrouvons
    458 les sorties de chaque job dans un directory différent :
    459 
    460 {{{
    461 [diarra@ipngrid01 ~/work]$ ls -F /home/diarra/JobOutput/diarra_6zqZkrgnQ2vYkPaeNabbiQ
    462 Node_job1_jdl/  Node_job2_jdl/  Node_job3_jdl/ ids_nodes.map
    463 
    464 [diarra@ipngrid01 ~/work]$ ls /home/diarra/JobOutput/diarra_6zqZkrgnQ2vYkPaeNabbiQ/Node_job1_jdl/
    465 std.err  std.out
    466 }}}
    467 
    468 Le fichier ids_nodes.map indique quel sous-directory est utilisé pour chaque jobId.
     268Dans le répertoire contenant les logs des différents jobs, le fichier `ids_nodes.map` indique quel sous-directory est utilisé pour chaque jobId.
    469269
    470270Les commandes glite-wms-job-cancel et glite-wms-job-logging-info s'appliquent également sur les collections.
     
    472272=== Examen en temps réel des fichiers de sortie : Job Perusal ===
    473273
    474 Avec le gLite WMS, on peut voir les fichiers produits par un job pendant qu'il est encore en exécution.
    475 C'est la fonctionnalité Job Perusal. Avec le RB il fallait attendre que le job soit terminé.
    476 
    477 Pour activer le Job Perusal pour un job, il faut mettre les deux lignes suivantes dans le .jdl :
     274Avec le gLite WMS, on peut voir les fichiers produits par un job pendant qu'il est encore en exécution. C'est la fonctionnalité ''Job Perusal''. Cette fonctionnalité facilite le debugging de jobs longs. Par contre '''il ne faut pas l'utiliser avec des jobs courts''' car cela n'amène rien et représente une charge importante pour le WMS. Cette fonctionnalité est basé sur une copie périodique de l'output du job par le WN sur le WMS, ce qui peut être assez pénalisant avec de gros fichier d'output.
     275
     276Pour activer le Job Perusal pour un job, il faut ajouter les deux lignes suivantes dans le .jdl :
    478277
    479278{{{
     
    482281}}}
    483282
    484 La valeur fournie à PerusalTimeInterval est en secondes. C'est l'intervalle
    485 entre deux uploads des fichiers sur le WMS par le WN. Eviter de mettre des
    486 valeurs trop petites. Mettre plutôt plusieurs minutes. Pour des jobs courts, cen'est pas la peine d'utiliser cette fonctionnalité sauf pour debugger des problèmes de plantage de job. De facçon générale, ne pas abuser de cette
    487 fonctionnalité car elle est augmente la charge du WMS.
     283La valeur de `PerusalTimeInterval` est en secondes : c'est l'intervalle entre deux uploads des fichiers sur le WMS par le WN. '''Eviter de mettre des
     284valeurs trop petites''' : utiliser un interval de plusieurs minutes.
    488285
    489286Dans 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.
     
    502299}}}
    503300
    504 N.B.: on peut utiliser l'attribut PerusalFilesDestURI dans le .jdl pour demander l'upload vers un serveur GridFTP plus que
    505 que vers le WMS.
    506 
    507 La soumission :
    508 
    509 {{{
    510 [diarra@ipngrid01 ~/work]$ glite-wms-job-submit -o pjid -a perusal.jdl
    511 
    512 https://grid02.lal.in2p3.fr:9000/1nX3gfh6Ba9NLtxy5FKe2g
    513 The job identifier has been saved in the following file:
    514 /home/diarra/work/pjid
    515 }}}
    516  
    517 On indique au WMS avec la commande 'glite-wms-job-perusal --set -f ... jodID', la liste des fichiers qu'on veut inspecter (ici std.err, std.out, perusal.log) :
    518 
     301''Note : on peut utiliser l'attribut `PerusalFilesDestURI` dans le `.jdl` pour demander l'upload vers un serveur GridFTP plutôt que
     302que vers le WMS.''
     303
     304Après la soumission du job, on doit indiquer au WMS la liste des fichiers qu'on veut inspecter (ici std.err, std.out, perusal.log) avec la commande suivante :
     305{{{
     306glite-wms-job-perusal --set -f file [-f file2...] jodID
     307}}}
     308
     309Par exemple :
    519310{{{
    520311[diarra@ipngrid01 ~/work]$ glite-wms-job-perusal --set -f std.err -f std.out -f perusal.log -i pjid
     
    527318}}}
    528319
    529 Pour récupère par exemple le fichier perusal.log :
    530 
     320
     321Pour examiner (récupérer) un fichier, par exemple le fichier perusal.log, il faut utiliser la commande :
     322{{{
     323glite-wms-job-perusal --get -f file [--nodisplay] [--all] JOBID
     324}}}
     325
     326L'option `--nodisplay` permet l'enregistrement du fichier plutôt que son affichage immédiat. L'option `--all` force la récupération de la totalité du fichier. Sans cette option, seule la différence depuis la dernière récupération est affichée ou sauvegardée.
     327
     328Par exemple :
    531329{{{
    532330[diarra@ipngrid01 ~/work]$ glite-wms-job-perusal --get --nodisplay -f perusal.log -i pjid
     
    542340}}}
    543341
    544 Ici, le fichier se trouvera dans /home/diarra/JobOutput/diarra_1nX3gfh6Ba9NLtxy5FKe2g . Le nom du fichier contient en plus
    545 la 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 :
    546 
    547 
    548 {{{
    549 [diarra@ipngrid01 ~/work]$ ls -l /home/diarra/JobOutput/diarra_1nX3gfh6Ba9NLtxy5FKe2g
    550 total 6900
    551 -rw-r--r--  1 diarra sii 1689998 Jun  5 11:34 perusal.log-20080605094053_1-20080605100318_12
    552 -rw-r--r--  1 diarra sii 5207599 Jun  5 11:34 perusal.log-20080605100520_13-20080605111856_49
    553 -rw-r--r--  1 diarra sii     213 Jun  5 09:41 std.err-20080605094051_1-20080605094051_1
    554 -rw-r--r--  1 diarra sii    6887 Jun  6 10:41 std.err-20080605094254_2-20080605111855_49
    555 -rw-r--r--  1 diarra sii   21097 Jun  5 09:56 std.out-20080605094052_1-20080605095508_8
    556 -rw-r--r--  1 diarra sii  103003 Jun  6 10:42 std.out-20080605095710_9-20080605111856_49
    557 }}}
    558      
    559 Si l'option --nodisplay n'est pas utilisé, le fichier sera en plus affiché à l'écran (pas toujours
    560 commode). Par ailleurs à chaque récupération, seule le delta depuis le dernier upload est transmis.
    561 Pour récupérer à chaque fois l'intégralité du fichier, il faut utiliser l'option --all de glite-wms-job-perusal.
    562 
    563 L'option --unset de glite-wms-job-perusal permet de désactiver le Job Perusal :
    564 
    565 {{{
    566 
    567 [diarra@ipngrid01 ~/work]$ glite-wms-job-perusal --unset -i pjid
    568 
    569 Reading the jobId from the input file: /home/diarra/work/pjid
    570 Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
    571 ====================== glite-wms-job-perusal Success ======================
    572 File(s) perusal has been successfully disabled for the job:
    573 https://grid02.lal.in2p3.fr:9000/1nX3gfh6Ba9NLtxy5FKe2g
    574 ==========================================================================
    575 }}}
    576                                                              
    577 === Le renouvelement automatique de proxy ===
    578 
    579 Pour 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
    580 validitée du proxy associé, il peut échouer ('Aborted' avec la raison 'the userproxy expired' ).
    581 
    582 Le serveur proxy permet d'enregistrer son proxy pour une longue durée. Le proxy enregistré peut ensuite servir au WMS pour renouveler automatiquement le proxy des jobs.
    583 
    584 Pour utiliser un service myproxy il faut :
    585  * Créer un proxy VOMS et l'enregistrer pour plusieurs jours ou semaines dans le serveur myproxy (myproxy.grif.fr pour GRIF)
    586  * Déclarer le serveur myproxy dans le .jdl. Par exemple mettre la ligne suivante dans le .jdl
    587 
    588 {{{
    589 MyProxyServer = "myproxy.grif.fr";
    590 }}}
    591 
    592 Avant d'enregistrer son proxy, en créer un valide :
    593 
    594 {{{
    595 [diarra@ipngrid01 work]$ voms-proxy-init --voms vo.ipno.in2p3.fr --valid 24:00
    596 }}}
    597 
    598 Pour supprimer un ancien proxy déjà enregistré dans le serveur myproxy :
    599 
    600 {{{
    601 [diarra@ipngrid01 work]$ myproxy-destroy -s myproxy.grif.fr -d
    602 }}}
    603 
    604 Pour enregistrer son proxy dans le serveur myprosy :
    605 
    606 {{{
    607 [diarra@ipngrid01 work]$ myproxy-init -s myproxy.grif.fr -d -n -t 24 -c 800
    608 }}}
    609 
    610 Les options :
    611 
    612  * -d : Le DN sera utilisé par défaut comme le username
    613  * -n : On peut récupérer le proxy sans donner de mot de passe
    614  * -t : Validité (lifetime) en heures du proxy récupéré (délégué). La valeur par défaut est 12h.
    615  * -c : Validité (lifetime) en heures du proxy sur le serveur myproxy. La valeur par defaut est 1 semaine.
    616  
    617 On vérifie avec myproxy-info :
    618 
    619 {{{
    620 [diarra@ipngrid01 work]$ myproxy-info -s myproxy.grif.fr -d
    621 
    622 username: /O=GRID-FR/C=FR/O=CNRS/OU=IPNO/CN=Christophe Diarra
    623 owner: /O=GRID-FR/C=FR/O=CNRS/OU=IPNO/CN=Christophe Diarra
    624   timeleft: 799:58:55  (33.3 days)
    625 }}}
    626 
    627 Ensuite il suffit de soumettre un job avec un proxy VOMS valide. Même si le job dure plusieurs jours, son proxy
    628 n'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.
    629 
    630 === Ressoumission automatique ===
    631 
    632 Le WMS peut resoumettre automatiquement les jobs s'ils sont 'aborted' par la grille. Deux types de ressoumission sont disponibles en gLite 3.1 WMS:
    633  * deep resubmission : pour les jobs qui échouent après démarrage sur un WN
    634  * shallow resubmission : dans les autres cas
    635 
    636 Les attributes RetryCount et ShallowRetryCount permettent de limiter le nombre
    637 de tentatives de ressoumission des jobs, respectivement pour les modes deep et shallow. Une valeur à zéro (0) dévalide la resoumission.
    638 
    639 Il 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 
    641 Dans l'exemple ci-dessous, on devalide le deep resubmission et on limite les tentatives de shallow resubmission à 3:
    642 
    643 {{{
    644 RetryCount = 0;
    645 ShallowRetryCount = 3;
    646 }}}
    647 
    648 === Références utiles ===
    649 
    650 Consulter les documents ci-dessous pour plus d'informations. Vous pourrez apprendre par exemple dans le 1er document
    651 (comment gLite 3.1 User Guide) comment :
    652 
    653  * utiliser GridFTP pour le transfert des SandBox
    654  * utiliser les DAG (direct acyclic graphs) : jobs dépendants qui doivent s'exécuter dans un certain ordre
    655  * utiliser les Parametric jobs : collection de jobs identiques à tous points sauf pour un parametre d'exécution
    656 
    657 gLite 3.1 User Guide:
    658 https://edms.cern.ch/file/722398/1.2/gLite-3-UserGuide.html
    659 
    660 Submission and monitoring of jobs via WMProxy using the command line interface:
    661 http://wiki.egee-see.org/index.php/SG_Running_Jobs_WMProxy_CLI
    662 
    663 Tutorial: Submitting jobs :
    664 http://www-numi.fnal.gov/offline_software/srt_public_context/GridTools/docs/jobs_tutorial.html#submitting_jobs
    665                                
    666 
    667 
     342
     343Enfin l'option `--unset` de `glite-wms-job-perusal` permet de désactiver le Job Perusal :
     344