Changes between Version 88 and Version 89 of Tutorial/JobSubm


Ignore:
Timestamp:
Sep 26, 2010, 6:29:32 PM (14 years ago)
Author:
/C=FR/O=CNRS/OU=UMR8607/CN=Charles Loomis/emailAddress=loomis@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Tutorial/JobSubm

    v88 v89  
    303303
    304304Les commandes glite-wms-job-cancel et glite-wms-job-logging-info s'appliquent également sur les collections.
    305 
    306 === Les jobs paramétriques ===
    307 
    308 Pour soumettre des jobs identiques en tous points sauf pour un seul paramètre d'exécution, on peut utiliser un job paramétrique : plutôt que de créer un .jdl par job, on crée un seul fichier .jdl dont la soumission va générer automatiquement la collection de jobs. C'est une variante des collections de job décrites précédemment.
    309 
    310 Les attribut JDL suivants sont utilisés pour définir un job paramétrique :
    311 
    312  * Parameters : une liste d'éléments (ex: {a, b, c}, {2, 7, 20}) ou un entier représentant la valeur maximale du paramètre
    313  * ParameterStart : un entier représentant la valeur minimale du paramètre
    314  * ParameterStep : un entier représentant l'incrément du paramètre
    315 
    316 Si `Parameters` est un entier, le nombre de jobs générés est :
    317 {{{
    318  N = (Parameters - ParameterStart) / ParameterStep
    319 }}}
    320 
    321 Pour que tous les jobs tournent sur le même CE, mettre la ligne suivante dans le .jdl :
    322 {{{
    323 NodesCollocation = true;
    324 }}}
    325 
    326 __Exemple 1__ : un programme exécuté avec 4 fichiers différents `Input1.txt`, `Input2.txt`, `Input3.txt`, `Input4.txt`. 
    327 
    328  * Créer le script correspondant au programme :
    329 {{{
    330 [diarra@ipngrid01 ParametricJobs]$ cat ParametricNum.sh
    331 #!/bin/sh
    332 MyParam=$1
    333 echo "Debut execution du programme"
    334 echo "Parametre = ${MyParam}"
    335 # On peut travailler sur le fichier de Input et de Output
    336 # cat Input${MyParam}.txt  > Output${MyParam}.txt
    337 }}}
    338 
    339  * Créer le JDL suivant (`_PARAM_` vaudra successivement 1, 2, 3 puis 4) :
    340 {{{
    341 [diarra@ipngrid01 ParametricJobs]$ cat ParametricNum.jdl
    342 JobType = "Parametric";
    343 Executable    = "ParametricNum.sh";
    344 Arguments     = "_PARAM_";
    345 StdOutput     = "std.out";
    346 StdError      = "std.err";
    347 InputSandbox = {"ParametricNum.sh", "Input_PARAM_.txt"};
    348 OutputSandbox = {"std.out", "std.err", "Output_PARAM_.txt" };
    349 MyProxyServer = "myproxy.grif.fr";
    350 Parameters = 5;
    351 ParameterStart = 1;
    352 ParameterStep = 1;
    353 #NodesCollocation = true;
    354 #Requirements = RegExp("ipngrid12.*\.fr:2119/jobmanager.*ipno$", other.GlueCEUniqueID);
    355 }}}
    356 
    357  * Soumettre le job :
    358 {{{
    359 [diarra@ipngrid01 ParametricJobs]$ glite-wms-job-submit -a -o jid ParametricNum.jdl
    360 }}}
    361 
    362  * Vérifier le status du job et l'existence de 4 sous-jobs :
    363 {{{
    364 [diarra@ipngrid01 ParametricJobs]$ glite-wms-job-status -i jid
    365 
    366 *************************************************************
    367 BOOKKEEPING INFORMATION:
    368 Status info for the Job : https://grid02.lal.in2p3.fr:9000/7X5T_8XEcxUjDeng1q92Wg
    369 Current Status:     Running
    370 Submitted:          Fri Jun  6 16:31:52 2008 CEST
    371 *************************************************************
    372 - Nodes information for:
    373     Status info for the Job : https://grid02.lal.in2p3.fr:9000/6zsSfE0nVOVyrWCQPga6fw
    374     Current Status:     Running
    375     Status Reason:      Job successfully submitted to Globus
    376     Destination:        ipngrid12.in2p3.fr:2119/jobmanager-pbs-ipno
    377     Submitted:          Fri Jun  6 16:31:52 2008 CEST
    378 *************************************************************
    379     Status info for the Job : https://grid02.lal.in2p3.fr:9000/DFqOECrwMEWmmpZs65oG3Q
    380     Current Status:     Running
    381     Status Reason:      Job successfully submitted to Globus
    382     Destination:        ipngrid12.in2p3.fr:2119/jobmanager-pbs-ipno
    383     Submitted:          Fri Jun  6 16:31:52 2008 CEST
    384 *************************************************************
    385     Status info for the Job : https://grid02.lal.in2p3.fr:9000/Ez2DyOUSDxCof9Sh0pQPog
    386     Current Status:     Running
    387     Status Reason:      Job successfully submitted to Globus
    388     Destination:        ipngrid12.in2p3.fr:2119/jobmanager-pbs-ipno
    389     Submitted:          Fri Jun  6 16:31:52 2008 CEST
    390 *************************************************************
    391     Status info for the Job : https://grid02.lal.in2p3.fr:9000/FxUda1Mz5DyB7SglhMDBEw
    392     Current Status:     Scheduled
    393     Status Reason:      Job successfully submitted to Globus
    394    Destination:        ipngrid12.in2p3.fr:2119/jobmanager-pbs-ipno
    395     Submitted:          Fri Jun  6 16:31:52 2008 CEST
    396 *************************************************************
    397 }}}
    398 
    399  * Quand le status de la collection de jobs est `Done`, récupérer l'output des différents jobs en utilisant la procédure habituelle. Comme dans toutes les collections de job, il y a un répertoire par sous-job et le fichier `ids_nodes.map` indique le nom du répertoire associé à chaque sous-job :
    400 {{{
    401 [diarra@ipngrid01 ParametricJobs]$ glite-wms-job-output  -i jid
    402 
    403 Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server
    404 ================================================================================
    405                         JOB GET OUTPUT OUTCOME
    406 
    407 Output sandbox files for the DAG/Collection :
    408 https://grid02.lal.in2p3.fr:9000/7X5T_8XEcxUjDeng1q92Wg
    409 have been successfully retrieved and stored in the directory:
    410 /home/diarra/JobOutput/diarra_7X5T_8XEcxUjDeng1q92Wg
    411 ================================================================================
    412 }}}
    413 
    414  * Visualiser l'output du 3ème job et vérifier qu'il a bien reçu la valeur `3` en paramètre :
    415 {{{
    416 [diarra@ipngrid01 ParametricJobs]$ cat /home/diarra/JobOutput/diarra_7X5T_8XEcxUjDeng1q92Wg/Node_3/std.out
    417 Debut execution du programme
    418 Parametre = 3
    419 }}}
    420 
    421 
    422 __ Exemple 2__ : un programme de simulation; `my_sim.exe` doit faire trois simulations `alpha`, `beta` et `gamma`. Dans ce cas on n'utilise que l'attribut `Parameters` et le JDL sera :
    423 {{{
    424 JobType = "Parametric";
    425 Executable = "my_sim.exe";
    426 Arguments = "_PARAM_";
    427 Parameters = {alpha, beta, gamma};
    428 InputSandbox = {"my_sim.exe", ...};
    429 ...
    430 }}}
    431 
    432 ''Note : il ne faut pas mettre de "" autour des éléments contenus dans `Parameters`.''
    433305
    434306=== DAG jobs (chainage de jobs) ===