36 | | Il y a deux clés très importantes dans les fichiers JDL :"Requirements" et "Rank". Les valeurs pour les clés Requirementset Rank sont des expressions. Votre job va tourner uniquement sur uneressource qui a une valeur "true" pour l'expression Requirements. S'il y a plusieurs ressources qui ont une valeur "true", le système utilise l'expression Rank pour choisir la meilleure ressource. La ressource qui a la plus grande valeur est choisie. S'il y a plusieurs ressources avec la même valeur Rank, la ressource utilisée est choisie aléatoirement entre ces ressources de même valeur Rank. On utilise la VO "dteam" ici pour voir plus de ressources. La VO vo.lal.in2p3.fr est autorisée uniquement sur les deux sites de la GRIF. Réinitialisez votre proxy avecla commande '''voms-proxy-init''' mais ''n'utilisez pas'' l'option "--voms". |
| 36 | |
| 37 | 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 à selectionner le CE auxquel sera envoyé le job. |
| 38 | * `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 : |
| 39 | {{{ |
| 40 | Requirements = regexp(".*\.lal\.in2p3\.fr:.*", other.GlueCEUniqueID); |
| 41 | }}} |
| 42 | * `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 : |
| 43 | {{{ |
| 44 | Rank = other.GlueCEStateFreeCPUs; |
| 45 | }}} |
| 46 | |
| 47 | Le résultat de l'évaluation de `Requirements` et `Rank` est différent suivant la VO utilisée car toutes les sites n'acceptent pas les mêmes VOs. On peut connaitre le résultat de l'évaluation de `Requirements` et `Rank` avant de soumettre le job en utilisant la commande `edg-job-list-match` et en indiquant le fichier JDL en paramètre. Cette commande retourne la liste des CEs sélectionnés par Requirements, classés dans l'ordre indiqué par `Rank`. On peut exécuter cette commande pour une VO pour laquelle on a pas de proxy en ajoutant l'option `--vo voname` (par exemple : `--vo dteam`). |
| 48 | |
| 49 | __Exercices__ : |