| 184 | |
| 185 | == Soumission de jobs via le WMS == |
| 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 |
| 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é. |
| 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 | Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server |
| 216 | ========================================================================== |
| 217 | COMPUTING ELEMENT IDs LIST |
| 218 | The following CE(s) matching your job requirements have been found: |
| 219 | *CEId* |
| 220 | - ipnls2001.in2p3.fr:2119/jobmanager-pbs-ipno |
| 221 | ========================================================================== |
| 222 | }}} |
| 223 | |
| 224 | Pour soumettre un job, utiliser glite-wms-job-submit : |
| 225 | |
| 226 | {{{ |
| 227 | diarra@ipngrid01 ~/work]$ glite-wms-job-submit -o jobId -a HelloWorld.jdl |
| 228 | Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server |
| 229 | ====================== glite-wms-job-submit Success ====================== |
| 230 | The job has been successfully submitted to the WMProxy |
| 231 | Your job identifier is: |
| 232 | https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw |
| 233 | The job identifier has been saved in the following file: |
| 234 | /home/diarra/work/jobId |
| 235 | ========================================================================== |
| 236 | |
| 237 | [diarra@ipngrid01 ~/work]$ cat jobId |
| 238 | ###Submitted Job Ids### |
| 239 | https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw |
| 240 | }}} |
| 241 | |
| 242 | === La delegation explicite de proxy au WMSProxy === |
| 243 | |
| 244 | 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 |
| 245 | jobs suivants seront soumis plus rapidement. |
| 246 | |
| 247 | Pour déléguer explicitement un proxy au WMProxy, la commande à utiliser est : |
| 248 | glite-wms-job-delegate-proxy -d <delegID> |
| 249 | |
| 250 | <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> . |
| 251 | |
| 252 | Par exemple, pour déléguer un proxy (qu'on nomme ici mydelegID): |
| 253 | |
| 254 | {{{ |
| 255 | [diarra@ipngrid01 ~/work]$ glite-wms-job-delegate-proxy -d mydelegID |
| 256 | |
| 257 | Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server |
| 258 | ================== glite-wms-job-delegate-proxy Success ================== |
| 259 | Your proxy has been successfully delegated to the WMProxy: |
| 260 | https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server |
| 261 | with the delegation identifier: mydelegID |
| 262 | ========================================================================== |
| 263 | }}} |
| 264 | |
| 265 | On peut alors soumettre un job en utilisant le <delegID> mydelegID : |
| 266 | |
| 267 | {{{ |
| 268 | [diarra@ipngrid01 ~/work]$ glite-wms-job-submit -d mydelegID HelloWorld.jdl |
| 269 | |
| 270 | Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server |
| 271 | ====================== glite-wms-job-submit Success ====================== |
| 272 | The job has been successfully submitted to the WMProxy |
| 273 | Your job identifier is: |
| 274 | https://grid02.lal.in2p3.fr:9000/ro9Lu7b0CtgKAYhua0HZ2A |
| 275 | ========================================================================== |
| 276 | }}} |
| 277 | |
| 278 | L'option -a de glite-wms-job-delegate-proxy permet de demander au système de choisir pour nous un <delegID> : |
| 279 | |
| 280 | {{{ |
| 281 | [diarra@ipngrid01 ~/work]$ glite-wms-job-delegate-proxy -a |
| 282 | |
| 283 | Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server |
| 284 | ================== glite-wms-job-delegate-proxy Success ================== |
| 285 | Your proxy has been successfully delegated to the WMProxy: |
| 286 | https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server |
| 287 | |
| 288 | with the delegation identifier: cFdr8WvkFirUHQs2sUpyGQ |
| 289 | ========================================================================== |
| 290 | }}} |
| 291 | |
| 292 | 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. |
| 293 | |
| 294 | |
| 295 | === Status des jobs / Récupération des outputs (OutpuSandbox) === |
| 296 | |
| 297 | Pour connaître le status d'un job : |
| 298 | |
| 299 | {{{ |
| 300 | [diarra@ipngrid01 ~/work]$ glite-wms-job-status -i jobId |
| 301 | ou |
| 302 | [diarra@ipngrid01 ~/work]$ glite-wms-job-status https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw |
| 303 | |
| 304 | ************************************************************* |
| 305 | BOOKKEEPING INFORMATION: |
| 306 | Status info for the Job : https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw |
| 307 | Current Status: Scheduled |
| 308 | Status Reason: Job successfully submitted to Globus |
| 309 | Destination: ipnls2001.in2p3.fr:2119/jobmanager-pbs-ipno |
| 310 | Submitted: Tue Jun 3 16:27:26 2008 CEST |
| 311 | ************************************************************* |
| 312 | }}} |
| 313 | |
| 314 | Attendre que le job soit Running puis Done (Success) pour pouvour récupérer les résultats avec glite-wms-job-status : |
| 315 | |
| 316 | {{{ |
| 317 | [diarra@ipngrid01 ~/work]$ glite-wms-job-status -i jobId |
| 318 | (ou glite-wms-job-status https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw) |
| 319 | |
| 320 | ************************************************************* |
| 321 | BOOKKEEPING INFORMATION: |
| 322 | Status info for the Job : https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw |
| 323 | Current Status: Done (Success) |
| 324 | Exit code: 0 |
| 325 | Status Reason: Job terminated successfully |
| 326 | Destination: ipnls2001.in2p3.fr:2119/jobmanager-pbs-ipno |
| 327 | Submitted: Tue Jun 3 16:27:26 2008 CEST |
| 328 | ************************************************************* |
| 329 | }}} |
| 330 | |
| 331 | Le job est terminé, on peut récupérer les résultats (OutputSandbox)avec glite-wms-job-output : |
| 332 | |
| 333 | {{{ |
| 334 | [diarra@ipngrid01 ~/work]$ glite-wms-job-output -i jobId |
| 335 | (ou glite-wms-job-output https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw) |
| 336 | |
| 337 | Connecting to the service https://grid09.lal.in2p3.fr:7443/glite_wms_wmproxy_server |
| 338 | ================================================================================ |
| 339 | JOB GET OUTPUT OUTCOME |
| 340 | Output sandbox files for the job: |
| 341 | https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw |
| 342 | have been successfully retrieved and stored in the directory: |
| 343 | /home/diarra/JobOutput/diarra_Rw0lve7pSId8-DBP2jiatw |
| 344 | ================================================================================ |
| 345 | |
| 346 | [diarra@ipngrid01 ~/work]$ ls -l /home/diarra/JobOutput/diarra_Rw0lve7pSId8-DBP2jiatw |
| 347 | total 0 |
| 348 | -rw-r--r-- 1 diarra sii 0 Jun 3 16:51 std.err |
| 349 | -rw-r--r-- 1 diarra sii 12 Jun 3 16:51 std.out |
| 350 | }}} |
| 351 | |
| 352 | === Tuer un job === |
| 353 | |
| 354 | [diarra@ipngrid01 ~/work]$ glite-wms-job-cancel <jobID> |
| 355 | ou |
| 356 | glite-wms-job-cancel -i <jobIdFile> |
| 357 | |
| 358 | Exemple: |
| 359 | {{{ |
| 360 | [diarra@ipngrid01 ~/work]$ glite-wms-job-cancel https://grid02.lal.in2p3.fr:9000/Rw0lve7pSId8-DBP2jiatw |
| 361 | }}} |
| 362 | |
| 363 | === Obtenir des détails (logging information) sur un job === |
| 364 | === Collection de jobs (bulk submission) === |
| 365 | === Examen en temps réel des fichiers de sortie === |
| 366 | === Le renouvellement automatique de proxy === |
| 367 | === Ressoumission automatique === |
| 368 | |
| 369 | === Références utiles === |
| 370 | |
| 371 | |
| 372 | |