Changes between Version 37 and Version 38 of Tutorial/JobSubm


Ignore:
Timestamp:
May 16, 2008, 12:12:42 PM (17 years ago)
Author:
jouvin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Tutorial/JobSubm

    v37 v38  
    7575  *  la ligne `Argument` peut rester avec `Hello World`
    7676  *  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.
    77  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?
    78  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?
     77 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 ?
     78 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`.
     79  * Testez ce script seul pour comprendre l'argument nécessaire.
     80  * Exécutez le job et vérifiez qu'il fonctionne toujours.
     81  * Votre job a-t-il tourné sur le même ordinateur que précédemment?
    7982
    8083`Note : si la VO que vous utilisez est acceptée par plusieurs CE, il peut être utile d'ajouter la ligne suivante dans votre JDL pour forcer le job à aller sur un CE particulier (au LAL dans l'exemple) :`
     
    8386}}}
    8487
    85 === Pour comprendre les `Requirements` and `Rank` ===
     88=== Requirements et Rank ===
    8689
    87 Il y a deux mots-clés très importants dans les fichiers JDL : `Requirements` et `Rank .  Leurs valeurs sont des expressions.  Ces 2 mot-clés servent à sélectionner le CE auxquels sera envoyé le job.
     90Il y a deux mots-clés très importants dans les fichiers JDL : `Requirements` et `Rank` .  Leurs valeurs sont des expressions.  Ces 2 mot-clés servent à sélectionner le CE auxquels sera envoyé le job.
     91
    8892 * `Requirements` : ce mot-clé permet de sélectionner les CE qui ont les ressources requises pour exécuter le job. L'expression des ressources peut porter sur n'importe quelle information publié dans le système d'information (BDII). En particulier, le nombre de CPUs libres, le temps d'exécution minimum, la quantité de mémoire... La valeur est une condition logique utilisant une syntaxe assez habituelle (proche de celle du langage C). On peut utiliser des `regular expressions` avec les chaines de caractères, en utilisant la fonction `RegExp(`pattern`,attribut)`. Par exemple, pour sélectionner un CE appartenant au domaine `lal.in2p3.fr`, on pourra utiliser l'expression :
    8993{{{
    9094Requirements = regexp(`.*\.lal\.in2p3\.fr:.*`, other.GlueCEUniqueID);
    9195}}}
     96
    9297 * `Rank` : cet mot-clé définit l'ordre de classement des CEs sélectionnés par la clause `Requirements `. Le CE sélectionné pour exécuter le job est celui ayant le meilleur classement suivant le critère défini par `Rank`. En cas d'ex-aequo, le CE est choisi aléatoirement parmi eux. Par exemple pour trier sur le nombre de CPUs libres dans le CE :
    9398{{{