Begin forwarded message:
From: Mahamadou BELEM Belem@Engref.Fr Date: 27 avril 2005 14:33:53 GMT+02:00 To: ducasse@iam.unibe.ch Subject: Exécution parallèle de plusieurs objets
Bonjour
Je suis entrain de developper un modèle multiagents et pour cela J'aimerais faire tourner les objets en parallèles.
A côté j'ai un autre modèle fait sous Gams (programmation mathématique), chaque objet doit exécuter le modèle par une méthode que j'appelle "optimiser". J'ai considéré au départ les objets comme une collection :
... [collec do: [:each| each optimiser]] fork. ...
je me suis rendu compte que cette syntaxe ne permet pas de faire tourner les objets en parallèle. Elle permet plutôt d'exécuter le bloc en question en parallèle avec les autres blocs.
J'aimerais si possible savoir comment créer des process pour chaque objet et les faire tourner en parallèle.
Bien à vous
BELEM Mahamadou
A côté j'ai un autre modèle fait sous Gams (programmation mathématique), chaque objet doit exécuter le modèle par une méthode que j'appelle "optimiser". J'ai considéré au départ les objets comme une collection :
... [collec do: [:each| each optimiser]] fork. ...
collec do: [:each | [each optimiser] fork].
peut-être ?
Romain
Il faut pas oublier des Processor yield pourqu'ils se passent la main. Pour avoir une idée, exécute ce bout de code dans un workspace. Chacun des 3 process affichera son message à tour de rôle sur le Transcript.
|lock| Transcript clear. lock := Semaphore forMutualExclusion. [5 timesRepeat: [ lock critical: [Transcript cr; show: 'Salut']. Processor yield]] fork. [5 timesRepeat: [ lock critical: [Transcript cr; show: 'Hello']. Processor yield]] fork. [5 timesRepeat: [ lock critical: [Transcript cr; show: 'Coucou']. Processor yield]] fork.
Le lock ici sert uniquement pour gérer la concurrence d'accès au Transcript.
Noury
Le 27 avr. 05, à 16:30, Romain Robbes a écrit :
A côté j'ai un autre modèle fait sous Gams (programmation mathématique), chaque objet doit exécuter le modèle par une méthode que j'appelle "optimiser". J'ai considéré au départ les objets comme une collection :
... [collec do: [:each| each optimiser]] fork. ...
collec do: [:each | [each optimiser] fork].
peut-être ?
Romain_______________________________________________ Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
-------------------------------------------------------------- Dr. Noury Bouraqadi - Enseignant/Chercheur Ecole des Mines de Douai - Dept. G.I.P http://csl.ensm-douai.fr/noury
European Smalltalk Users Group Board http://www.esug.org
Squeak: an Open Source Smalltalk http://www.squeak.org --------------------------------------------------------------
squeak-fr@lists.squeakfoundation.org