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 : |
| 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 : |
50 | | 1. Plusieurs valeurs peuvent être utilisées pour définir les expressions Requirements et Rank. Par exemple, ajoutez l'expression ci-dessous dans le fichier ''HelloWorld.jdl'' pour choisir tous les sites qui permettent à un job d'utiliser plus d'une heure de temps CPU. |
51 | | * '''{{{Requirements = (other.GlueCEPolicyMaxCPUTime > 60); }}}''' Pour voir la liste des ressources acceptables utilisez la commande '''edg-job-list-match''' et l'option "-vo dteam". Combien de ressources autorisent les jobs qui utilisentplus d'une heure de temps CPU? Plus de deux heures? Plus de 10000minutes? |
52 | | 1. Pour choisir des sites spécifiques, on peut utiliser le nom de la ressource. Pour choisir tous les sites en France, changez la valeur de Requirements comme suit : |
53 | | * '''{{{Requirements = RegExp(".*\.fr:.*",other.GlueCEUniqueID);}}}''' Le premier argument est une expression régulière. Combien y a-t-il de sites en France? Combien de sites en France autorisent les jobs qui utilisent plus d'une heure de temps CPUs? Modifiez la ligne Requirements pour choisir une ressource. Trouvez la syntaxe correcte pour exclure un site. Une option "-r" existe pour la commande '''edg-job-submit''' qui permet de choisir une ressource spécifique. Cependant cette option évite tous le processus "MatchMaking" de Resource Broker et n'ajoute pasle fichier nécessaire (le fichier "BrokerInfo") pour la gestion dedonnées. La technique avec other.GlueCEUniqueID est plus flexibleet plus sûre. |
54 | | 1. Ajoutez les lignes suivantes pour utiliser la ressource avec le plus grand nombre des CPUs libres: |
55 | | * '''{{{Rank = other.GlueCEStateFreeCPUs; }}}''' Utilisez la commande '''edg-job-list-match''' pour visualiser lerésultat. (L'ordre indique le Rank. La ressource la plus intéressante est la première). Si on utilise la valeur "-other.GlueCEStateFreeCPUs", quelle ressource le Broker va t-il choisir? Que fait le RB si on utilise le valeur "Rank = 1"? |
| 50 | |
| 51 | Dans les exercices proposés, vous allez éditer le fichier `HelloWorld.jdl` pour modifier les expressions `Requirements` et `Rank`. Pour voir l'effet de la modification, utiliser la commande `edg-job-list-match` puis essayer de soumettre le job en utilisant la commande `edg-job-submit`. Pour soumettre le job, vous devez avoir un proxy valide. |
| 52 | |
| 53 | 1. Sélectionner les sites qui acceptent des jobs nécessitant plus de 1 heure de CPU : |
| 54 | {{{ |
| 55 | Requirements = (other.GlueCEPolicyMaxCPUTime > 60); |
| 56 | }}} |
| 57 | 1. Essayer de modifier la clause `Requirements` pour demander plus de 2h, plus de 12h. Indiquer le besoin en temps d'exécution total plutôt qu'en temps CPU (`other.GlueCEPolicyMaxWallClockTime`). |
| 58 | 1. Choisir uniquement des sites francais. Pour cela on peut utiliser la valeur suivante (d'abord seule puis en la combinant avec la précédente avec l'opérateur `&&`) : |
| 59 | {{{ |
| 60 | RegExp(".*\.fr:.*",other.GlueCEUniqueID) |
| 61 | }}} |
| 62 | 1. Ajoutez les lignes suivantes pour utiliser la ressource avec le plus grand nombre des CPUs libres et comparer le CE qui sera sélectionné. |
| 63 | {{{ |
| 64 | Rank = other.GlueCEStateFreeCPUs; |
| 65 | }}} |
| 66 | 1. Utiliser la valeur `-other.GlueCEStateFreeCPUs` : quelle est l'effet ? |
| 67 | 1. Que se passe-t-il si on utilise `Rank = 1;`? |
| 68 | |
| 69 | ''Note : Une option "-r" existe pour la commande '''edg-job-submit''' qui permet de choisir une ressource spécifique. Cependant cette option évite tous le processus "MatchMaking" de Resource Broker et n'ajoute pasle fichier nécessaire (le fichier "BrokerInfo") pour la gestion dedonnées. La technique avec other.GlueCEUniqueID est plus flexibleet plus sûre.'' |