Changes between Version 33 and Version 34 of Tutorial/JobSubm
- Timestamp:
- May 16, 2008, 11:12:31 AM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Tutorial/JobSubm
v33 v34 17 17 Les principales commandes sont : 18 18 * `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 19 20 * `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 21 24 * `glite-wms-job-logging-info` : affichage d'informations détaillées sur l'exécution du job et les éventuelles erreurs rencontrées. 25 22 26 * `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 30 Toutes les commandes ont une aide en ligne accessible en utilisant l'option `--help` ou la commande `man`. 23 31 24 32 La 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`. 25 33 26 ''Note: l'utilisation des commandes `glite-wms-job-xxx` nécessite d'avoir un proxy valide.'' 34 Les 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 36 Il 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. 27 37 28 38 === Soumission d'un Job "Hello World" === 29 39 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.40 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é [wiki:Tutorial/JobSubm#DescriptiondesJobsJDL JDL]], décrit dans la partie suivante. 31 41 32 42 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). 38 45 * Suivez les modifications de l'état du job jusqu'à l'état "Done(Success)". 39 46 * 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`. 43 49 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. 44 50 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 47 51 == Description des Jobs (JDL) == 48 52 49 === Fichier JDL : modification et édition ===53 === Modification et Edition === 50 54 51 55 1. Modifiez le fichier `HelloWorld.jdl` de manière à ce qu'il n'appelle plus `/bin/echo` mais le script `HelloWorldScript.sh`. Pour cela :