wiki:Tutorial/VOSoftware

Installation et Gestion du Logiciel des VOs

Sur chaque CE qui la supporte, une VO dispose d'un espace connu sous le nom de software area destiné à contenir l'ensemble des logiciels spécifiques à la VO. C'est en général indispensable pour les applications utilisant de nombreuses librairies où il est impossible de tout transmettre avec chaque job.

Il y a une software area par VO. Elle est accessible en lecture à tout le monde mais le droit d'écriture est restreint à un rôle particulier dans la VO appelé Software Manager. Le nom exact de ce rôle peut varier suivant la VO mais il doit être déclaré par la VO dans son identity card.

Chaque VO peut par ailleurs publier des tags dans le système d'information qui servent généralement à refléter le contenu de la software area.

Référencer la VO Software Area

Pour référencer le contenu de la VO Software Area depuis un job, par exemple pour lancer une application, il faut utiliser la variable d'environnement VO_VONAME_SW_DIR, avec VONAME égal au nom de la VO en majuscule.

Note : si le nom de la VO est de la forme vo.dom.ain, les . sont remplacés par des _. Par exemple pour la VO vo.lal.in2p3.fr, le nom de la variable sera VO_VO_LAL_IN2P3_FR_SW_DIR (le premier VO_ ne fait pas partie du nom de la VO).

Pour une VO donnée, la valeur de cette variable varie d'un site à l'autre. Il ne faut donc jamais utiliser directement la valeur dans un job et toujours utiliser la variable d'environnement.

Gérer la VO Software Area [NPF]

Gérer le Contenu de la SW Area

La gestion du contenu de la software area se fait normalement en soumettant un job avec le rôle Software Manager. Ce job possède alors tous les droits sur la software area et peut ajouter ou supprimer des choses, par exemple des versions d'application.

L'utilisation d'un job standard laisse une grande flexibilité sur la façon d'installer un logiciel :

  • Reconstruction depuis les sources, fournies avec le job ou récupérer depuis un repository de code source du type CVS ou SVN.
  • Installation de binaires précompilés
  • Utilisation d'un storage element pour stocker une archive installée sur chaque CE ou de l'input sandbox si l'application n'est pas trop volumineuse

Il est important de penser à supprimer les choses inutiles. Le gestionnaire de la VO doit normalement indiquer la taille typique de la software area pour la VO. Raisonnablement il ne faut pas dépasser quelques GB.

Publier le Contenu de la SW Area

Tous les sites supportant une VO donnée n'ont pas nécessairement les mêmes applications ou les mêmes versions installées. Pour pouvoir sélectionner un site approprié à une application, la VO doit publier un ou des tags reflétant les ressources disponibles sur le site.

Les tags sont des noms arbitraires définis par la VO. Ils n'ont pas de sens en dehors de la VO mais leur syntaxe doit obéir au format suivant et ne contenir que des caractères alphanumériques ainsi que ., ,, : et / :

VO-voname-voinfo

Par exemple :

VO-dteam-geant42ndProd_p02

La publication du tag nécessite aussi le rôle production. Elle peut se faire soit depuis un UI, soit depuis un job de validation.

La commande de gestion des tags est lcg-ManageVOTag et sa syntaxe est :

lcg-ManageVOTag -host <host> -vo <voname> [--add|--list|--remove|--replace] -tag <tagname1> <tagname2> <tagname3> ...

Quand on utilise l'option --list, l'option -tag doit être omise. host est le nom du CE. Pour plus de détail utiliser l'option --help.

Sélectionner un CE en fonction des logiciels installés

Lors de la soumission de job, il est possible de spécifier dans les requirements que l'on souhaite utiliser un CE publiant qu'un certain logiciel est installé. La publication correspond au tag définit précédemment.

Par exemple pour sélectionner un CE offrant la version R2008b de MatLab (publiée avec le software tag MATLAB_R2008B) il faut utiliser l'expression suivante dans les requirements du JDL:

Requirements = Member("MATLAB_R2008B", other.GlueHostApplicationSoftwareRunTimeEnvironment);
Last modified 14 years ago Last modified on Sep 26, 2010, 12:12:33 PM