Changes between Version 33 and Version 34 of Tutorial/JobSubm


Ignore:
Timestamp:
May 16, 2008, 11:12:31 AM (17 years ago)
Author:
jouvin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Tutorial/JobSubm

    v33 v34  
    1717Les principales commandes sont :
    1818 * `glite-wms-job-submit` : soumission d'un job. Cette commande nécessite un ''delegation proxy'' qui peut être créé automatiquement si on utilise l'option `-a` ou être créé avec la commande `glite-wms-job-delegation-proxy` et être spécifié avec l'option `-d identifieur`. L'utilisation de `-d` doit être préférée si on soumet plusieurs jobs car elle est beaucoup plus efficace.
     19 
    1920 * `glite-wms-job-status` : affichage de l'état d'un job (en attente, en cours d'exécution, terminé...).
    20  * `glite-wms-job-output` : récupération de l'output du job.
     21
     22 * `glite-wms-job-output` : récupération de l'output du job. Le répertoire  utilisé pour stocker les résultats dépend de la configuration du  site.  Au LAL, le répertoire est  `~/JobOutput/`.  Ce  répertoire doit exister avant l'exécution de la commande : il faut le  créer si nécessaire.
     23
    2124 * `glite-wms-job-logging-info` : affichage d'informations détaillées sur l'exécution du job et les éventuelles erreurs rencontrées.
     25
    2226 * `glite-wms-job-delegation-proxy -d identifieur` : obtention d'un `delegation proxy` pour soumettre plusieurs jobs. `identifieur` est un nom arbitraire qui sera utilisé pour désigner le ''delegation proxy'' et l'utiliser dans avec les commandes comme `glite-wms-job-submit`.
     27
     28''Note: l'utilisation des commandes `glite-wms-job-xxx` nécessite d'avoir un proxy valide.''
     29
     30Toutes les commandes ont une aide en ligne accessible en utilisant l'option `--help` ou la commande `man`.
    2331
    2432La commande `glite-wms-job-submit` retourne un ''jobid'' qui est un URL. Ce ''jobid'' devra être utilisé pour désigner le job dans les autres commandes. Il doit être conservé sans quoi il n'est plus possible d'interagir avec le job (connaitre son état ou récupérer son output). Quand on soumet plusieurs jobs, il peut être plus pratique d'utiliser l'option `-o fichier` lors du submit : dans ce cas, le ''jobid'' sera écrit dans le fichier. Le même fichier pourra être utilisé à la place du paramètre ''jobid'' dans les autres commandes en utilisant l'option `-i`.
    2533
    26 ''Note: l'utilisation des commandes `glite-wms-job-xxx` nécessite d'avoir un proxy valide.''
     34Les commandes `glite-wms-job-xxx` nécessitant d'avoir un proxy valide, il n'y a pas besoin de spécifier la VO utilisée pour ces commandes. Elle est obtenue à partir du proxy.
     35
     36Il existe également des APIs (Java, C, C++) qui permettent la gestion des jobs depuis une application.  Ce tutorial ne couvre pas la description de ces APIs.
    2737
    2838=== Soumission d'un Job "Hello World" ===
    2939
    30 Cette exercice consiste à soumettre un job très simple qui écrira "Hello World" dans le fichier d'output. Le job en lui-même n'a pas d'intérêt particulier mais permet d'illuster la soumission et le suivi de l'exécution d'un job. Un job grille est décrit dans un langage particulier appelé ''JDL'', décrit dans la partie suivante.
     40Cette exercice consiste à soumettre un job très simple qui écrira "Hello World" dans le fichier d'output. Le job en lui-même n'a pas d'intérêt particulier mais permet d'illuster la soumission et le suivi de l'exécution d'un job. Un job grille est décrit dans un langage particulier appelé [wiki:Tutorial/JobSubm#DescriptiondesJobsJDL JDL]], décrit dans la partie suivante.
    3141
    3242 1.  Si ce n'est pas déjà fait, créez un proxy à l'aide de la  fonction  `voms-proxy-init`.
    33  1.  La description du job la plus simple possible se trouve dans le fichier `HelloWorld.jdl`. Le format de ce fichier est le couple  clés/valeurs définis.
    34  1.  Soumettez le job  `HelloWorld.jdl` en utilisant la commande `glite-wms-job-submit`.  Les commandes "workload management" comprennent les proxies VOMS et utilisent la VO indiquée  dedans.
    35   * `glite-wms-job-submit HelloWorld.jdl`  : la commande envoie une réponse contenant une URL qui débute par "https", quand elle se passe bien. Cet URL est l'identifiant du job ou ''jobid'' qui permet de manipuler le job.
    36   * On peut utiliser l'option `-o fichier` de la commande `glite-wms-job-submit` pour que le ''jobid'' soit stocké dans un fichier. Le même fichier pourra être utilisé avec les autres commandes `glite-wms-job` en utilisant l'option `-i`.
    37  1. Vérifiez le statut du job en utilisant la commande `glite-wms-job-status` (Sur linux on peut utiliser la commande `watch` pour  exécuter une commande dans une boucle. Pour effectuer la commande `glite-wms-job-submit` toutes les 15 secondes, utilisez  `watch -n 15 glite-wms-job-status <jobid>` et taper ctrl-c pour sortir).
     43 1.  Soumettez le job  `HelloWorld.jdl` se trouvant dans le matériel du tutorial récupéré précédemment, en utilisant la commande `glite-wms-job-submit`. Sauver le ''jobid'' retourné ou utiliser l'option `-o`.
     44 1. Vérifiez le statut du job en utilisant la commande `glite-wms-job-status`. On peut utiliser la commande `watch` pour  exécuter une commande dans une boucle (pour effectuer la commande `glite-wms-job-status` toutes les 15 secondes, utilisez  `watch -n 15 glite-wms-job-status <jobid>` et taper ctrl-c pour sortir).
    3845  * Suivez les modifications de l'état du job jusqu'à l'état "Done(Success)".
    3946  * Combien d'états différents pouvez-vous distinguer ?
    40   * Si le job se termine dans l'état "Aborted", c'est qu'il y a eu une erreur. On peut trouver plus d'informations avec la commande `glite-wms-job-get-logging-info`. Cette commande requiert le jobid.
    41  1.  Lorsque le job est terminé (Status: Done (Success)), récupérez les données générées  à l'aide de la commande  `glite-wms-job-output`.  Le répertoire  utilisé pour stocker les résultats dépend de la configuration du  site.  Au LAL, le répertoire est  `~/JobOutput/`.  Ce  répertoire doit exister; créez-le si nécessaire.
    42   * `glite-wms-job-output <jobid>` : la réponse indique le répertoire qui contient les résultats du job.
     47  * Si le job se termine dans l'état "Aborted", c'est qu'il y a eu une erreur. On peut trouver plus d'informations avec la commande `glite-wms-job-get-logging-info`.
     48 1.  Lorsque le job est terminé (Status: Done (Success)), récupérez les données générées  à l'aide de la commande  `glite-wms-job-output`.
    4349 1.  Vérifiez que tout s'est déroulé correctement en consultant les  fichiers `std.out` et `std.err`. Le fichier `std.err` doit être vide et `std.out` doit contenir "Hello  World". Cette procédure simple est utilisée pour le suivi de tous les jobs.
    4450 
    45 Comme indiqué dans la description de la commande `glite-wms-job-submit`, il est possible d'utiliser les options `-o`, `-i`, et `-noint` qui permettent de gérer un plus grand nombre de jobs avec les commandes  `glite-wms-job-*`. Regardez les informations avec l'option `-help` ou la commande `man`. Il existe également des APIs (java, c, c++) qui permettent la gestion des jobs vers un programme compilé.  Ce tutorial ne couvre pas ces APIs.
    46 
    4751== Description des Jobs (JDL) ==
    4852
    49 === Fichier JDL : modification et édition ===
     53=== Modification et Edition ===
    5054
    5155 1. Modifiez le fichier `HelloWorld.jdl` de manière à ce  qu'il n'appelle plus `/bin/echo` mais le script `HelloWorldScript.sh`.  Pour cela :