Changes between Version 37 and Version 38 of Tutorial/JobSubm
- Timestamp:
- May 16, 2008, 12:12:42 PM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Tutorial/JobSubm
v37 v38 75 75 * la ligne `Argument` peut rester avec `Hello World` 76 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. 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? 79 82 80 83 `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) :` … … 83 86 }}} 84 87 85 === Pour comprendre les `Requirements` and `Rank`===88 === Requirements et Rank === 86 89 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. 90 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. 91 88 92 * `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 : 89 93 {{{ 90 94 Requirements = regexp(`.*\.lal\.in2p3\.fr:.*`, other.GlueCEUniqueID); 91 95 }}} 96 92 97 * `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 : 93 98 {{{