Modules repartis
-
Bonjour,
Je souhaiterai savoir comment lancer des modules de salome sur des machines distantes. Est-ce qu'il est possible de le faire a partir du superviseur ?
Cordialement
P.S. Desole pour les accents j'utilise un clavier QWERTY-
Michele BARRE wrote:
Bonjour,
Je souhaiterai savoir comment lancer des modules de salome sur des machines distantes. Est-ce qu'il est possible de le faire a partir du superviseur ?
Cordialement
P.S. Desole pour les accents j'utilise un clavier QWERTY
Bonjour,
la distribution dans salome est à l'état de prototype.
Il y a deux façons de distribuer un composant salomé :
- en python : salome.lcc.FindOrLoadComponent("/",""
- en supervision : clic droit sur le noeud, et renseigner le champ Container Name à /
Deux pré-requis : le composant + kernel salome doivent être installé sur la machine, et le catalogue des ressources doit être renseigné (fichier KERNEL_x.y.z/share/salome/resources/CatalogResources.xml )
-
Hello,
I'd like to know how I can launch remote module from Salome. Is it possible to do it from the supervisor module ?
Coul you explain it to me if it's possible ?
Thank You,
Michele-
Desolee,
Mon message precedent a ete poste juste avant que j'ai pu lire votre reponse.
Merci pour ces informations.-
J'aurai encore une autre question, le fichier catalogue reference un script shell, a quoi correspond-il ? Je n'ai pas reussi a en trouver des exemples dans les sources...
Cordialement-
Bonjour,
La bonne API pour lancer des composants Salome sur des machines distantes est la suivante:
LCC = LifeCycleCORBA(orb);
MachineParameters params;
params.hostname = mymachine;
params.container_name = "myContainer" ;
params.OS = LINUX;
params.mem_mb = 500;
params.cpu_clock = 2000;
params.nb_proc_per_node = 1;
params.nb_node = 1;
params.isMPI = false;
myCompo = LCC.FindOrLoadComponent( params, MYCOMPO );
Cordialement
Bernard Secher
-
-
Bonjour,
Je suis toujours sur ce probleme des objets repartis, ou-est-ce que je peux/dois specifier le protocole d'acces (ssh ou rsh) ? Y-a-t-il des variables d'environnements a definir sur la machine distante ?
Cordialement-
Bonjour,
Oui, cela se fait dans le fichier CatalogResources.xml. Pour l'environnement, il y a deux façons de faire. Soit vous le définissez dans le fichier CatalogResources.xml, soit vous utilisez le repertoire application (c'est la meilleure façon de faire) pour définir l'environnement sur toutes les machines utilisées. Voir le fichier: KERNEL_xyz/share/doc/salome/SALOME_Application.html pour la mise en oeuvre de l'application Salomé.
Cordialement
Bernard Secher-
Bonjour,
Dans SALOME est-il possible de lancer "a la main" le container et le composant sur une machine distante et d'y acceder ensuite a distance ?
Cordialement,
Michele BARRE-
Bonjour,
Oui, c'est possible, mais pouquoi faire comme cela? Je pense que c'est mieux de laisser salome gerer lui meme les containers. Il ya en effet un gestionnaire de container dans salome qui possede la liste de tous les containers lancés. Je ne suis pas sûr que toutes les fonctionnailtés marcheront, s'il y a des containers inconnus du gestionnaire de containers.
Cordialement -
Bonjour,
Si j'ai bien compris, chaque machine qui va "mettre a disposition" des modules Salome, doit disposer des modules en question, du kernel, et des pre-requis. Or il me semble que les pre-requis sont nombreux. Ce que j'essaie de trouver c'est l'environnement exact necessaire a l'execution d'un module, et l'ensemble des pre-requis pour l'execution a distance de ce module afin de realiser un mecanisme de deploiement automatise.
Malheureusement, je n'arrive toujours pas a lancer un composant a distance, malgre l'ajout de celui-ci dans le fichier catalogue.
Cordialement.
Michele BARRE-
Bonjour,
Effectivement, vous êtes obligé d'installer Salomé et ses pré-requis sur chaque machine sur lesquelles vous voulez faire tourner un code dans l'environnement Salomé.
Ensuite il vous faut définir un répertoire application sur chacune de ses machines. C'est ce répertoire qui va définir l'environnment lorsque vous aller faire tourner Salomé.
Enfin, dans le catalogue de machine, il faut mettre toutes les machines que vous voulez utiliser en précisant le répertoire application.
Ensuite vous lacer Salomé en tapant:
runAppli -modules=GEOM, SMESH,SUPERV,VISU,mesModules
Avez vous fait tout cela? Si oui quel est le message d'erreur?
Cordialement-
Bonjour,
Merci pour votre reponse. Je dois avoir commis une erreur lors de la definition du repertoire application, je vais essayer de reprendre ca. Donc a priori c'est bien l'ensemble des pre-requis qui est necessaire au fonctionnement a distance d'un module. Cela risque de compliquer ma tache.
Cordialement.
-
-
-
Bonjour,
J'ai suivi vos recommandations concernant le repertoire application. J'ai constate qu'il contient lui aussi un fichier catalogue, est-ce que c'est dans celui-ci qu'il faut ajouter les machines distantes, ou toujours dans le fichier catalogue du kernel ?
Cordialement -
Bonjour,
J'ai depuis peu un probleme que je ne m'explique pas. Au lancement de Salome, l'application se fige sans arriver au lancement de l'interface graphique. Apres avoir ajoute quelques traces dans le code, je me suis rendu compte que c'etait la ligne suivante qui posait probleme : orb->run() dans SALOME_ContainerManagerServer.cxx. Aucune exception n'est lancee, et plus rien ne se passe. Auriez-vous une idee du probleme ?
Cordialement
Michele -
Bonjour,
je suis parvenue a regler mon precedent probleme, et j'ai bien respecter les regles en ce qui concerne le repertoire application, je rencontre toutefois un nouveau probleme, puisque je ne parviens toujours pas lancer un composant sur une machine distante.
Voila ce que j'ai trouve dans les fichiers de log. Le probleme est lie a corba, mais je ne vois pas comment y remedier.
omniORB: ERROR -- A servant has been deleted that is still activated.
id: root<0> (active)
th. 3065456320 - Trace ../../../KERNEL_SRC/src/Container/Container_i.cxx [128] : argv1 FactoryServer
th. 3065456320 - Trace ../../../KERNEL_SRC/src/Container/Container_i.cxx [128] : argv2 -id
th. 3065456320 - Trace ../../../KERNEL_SRC/src/Container/Container_i.cxx [128] : argv3 2
th. 3065456320 - Trace ../../../KERNEL_SRC/src/Container/Container_i.cxx [128] : argv4 -ORBInitRef
th. 3065456320 - Trace ../../../KERNEL_SRC/src/Container/Container_i.cxx [128] : argv5
NameService=IOR:01000000010000000000000001000000000000002300000001010000070000006f61736973320000fa0a00000b0000004e616d6553657276696365
th. 3065456320 - Trace ../../../KERNEL_SRC/src/Container/Container_i.cxx [137] : argv[1]=FactoryServer
th. 3065456320 - Trace ../../../KERNEL_SRC/src/NamingService/SALOME_NamingService.cxx [50] : SALOME_NamingService default constructor
th. 3065456320 - Trace ../../../KERNEL_SRC/src/NamingService/SALOME_NamingService.cxx [95] : SALOME_NamingService initialisation
th. 3065456320 - Trace ../../../KERNEL_SRC/src/NamingService/SALOME_NamingService.cxx [1505] : CORBA::SystemException: unable to contact the naming service
th. 3065456320 - Trace ../../../KERNEL_SRC/src/Container/SALOME_Container.cxx [150] : Caught std::exception - Salome Exception : ServiceUnreachable
th. 3065456320 end of trace
omniORB: Assertion failed. This indicates a bug in the application using
omniORB, or maybe in omniORB itself.
file: ../../../../../src/lib/omniORB/orbcore/omniServant.cc
line: 216
info: activation_found
/tmp/SalomeAppli/runRemote.sh: line 66: 5225 Aborted
${KERNEL_ROOT_DIR}/bin/salome/envSalome.py /bin/sh --rcfile $APPLI/.bashrc -c "$*"
Cordialement.-
Bonjour,
d'après le message d'erreur le container n'arrive pas à contacter le naming service lancé par Salomé.
Il y a deux possibilités :
- Soit l'IOR fournit à l'exécutable est corrompu
- Soit le naming service n'est pas atteignable depuis la machine distante en raison d'un parefeu
André Ribes
-
-
-
-
-
-
-
-
-
-
Powered by
Ploneboard
