Changes between Version 35 and Version 36 of Tutorial/JobSubm


Ignore:
Timestamp:
May 16, 2008, 11:37:47 AM (16 years ago)
Author:
jouvin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Tutorial/JobSubm

    v35 v36  
    5353=== Modification et Edition ===
    5454
     55Le fichier de description des jobs (JDL) utilise 1 langage particulier pour décrire les attributs et besoins du job. Ces informations sont utilisés par le WMS pour sélectionner le CE approprié à l'exécution du job et par le CE pour lancer l'application de l'utilisateur.
     56
     57Le format de ce fichier est un ensemble de définition attribut/valeur, en utilisant le format suivant :
     58{{{
     59Attribut: Valeur;
     60}}}
     61
     62''Note: `Attribut` n'est pas case sensitive. Certaines valeurs le sont, par exemple des noms de fichiers.''
     63
     64Les principaux attributs sont:
     65 * `Executable` (obligatoire) : définit la commande à exécuter. S'il s'agit d'un shell script, le shell utilisé par le script (indiqué dans la ligne `#!`) doit exister dans le worker node.
     66 * `Argument` (facultatif) : une chaine de caractère passée comme argument de la commande, en utilisant la syntaxe attendue par la commande.
     67 * `InputSandbox` (facultatif) : liste des fichiers locaux à transférer avec le job.
     68 * `OutputSandbox` (obligatoire) : liste des fichiers produits par le job et devant être retournés par la commande `glite-wms-job-output`. Il doit y avoir au moins `stdout` et `stderr`.
     69
     70
     71__Exercices__ :
     72
    5573 1. Modifiez le fichier `HelloWorld.jdl` de manière à ce  qu'il n'appelle plus `/bin/echo` mais le script `HelloWorldScript.sh`.  Pour cela :
    56   *  la ligne `Executable` doit être `HelloWorldScript.sh`,
    57   *  la ligne `Argument` peut rester avec `Hello World`,
    58   *  vous devez de plus définir le paramètre `InputSandbox`. Tous les fichiers listés dans `InputSandbox` sont transfèrés avec le job. La syntaxe de cette ligne est : 
    59   * `{{{InputSandbox = `HelloWorldScript.sh`; }}}`    Si vous soumettez plusieurs jobs avec les mêmes fichiersd'entrée, une nouvelle copie de chaque fichier est créée.   Exécutez le job et vérifiez que tout fonctionne.On peut utiliser n'importe quel script, cependant le shell utilisé par le script (indiqué dans la ligne `#!`) doit exister dans le `Worker Node`.
     74  *  la ligne `Executable` doit être `HelloWorldScript.sh`
     75  *  la ligne `Argument` peut rester avec `Hello World`
     76  *  Il faut définir le paramètre `InputSandbox`. Tous les fichiers listés dans `InputSandbox` sont transfèrés avec le job. Quand on soumet plusieurs jobs avec les mêmes fichiers d'entrée, une nouvelle copie des fichiers est créée pour chaque job. La syntaxe de cette ligne est : 
     77{{{InputSandbox = 'HelloWorldScript.sh';
     78}}}
    6079 1.  Modifier de nouveau `HelloWorld.jdl` de manière à ce  qu'il appelle cette fois l'exécutable  `myhostname`.  Vous  pouvez visualiser la source de cet exécutable, qui est un  programme C :  `myhostname.c`. Vous n'avez cette fois pas besoin de définir d'argument.  Il faut modifier la ligne `InputSandbox`.  Exécutez le job et vérifiez que tout fonctionne.  Sur quel ordinateur a tourné votre job?
    6180 1.  L'exécution d'un programme en C compilé n'est pas  forcément pratique : l'exécutable peut être d'une grande  taille, dépendre de plusieurs fichiers, ou dépendre d'un  environnement d'exécution particulier.Une solution consiste à compiler le programme directement sur le CE. Modifier une nouvelle fois `HelloWorld.jdl` de manière à ce  qu'il appelle le script `buildandrun.sh`, avec pour argument  `myhostname`. Testez ce script seul pour comprendre l'argument nécessaire.Exécutez le job et vérifiez qu'il fonctionne toujours. Votre job a-t-il tourné sur le même ordinateur que précédemment?