Verfasst am: 08.07.2010, 11:12
Titel: [ParallelComputingToolbox] Gui auf einem anderen worker/lab
Hallo, ich bin noch Matlab-Neuling und habe folgendes Problem :
Ich habe eine M-File, in der verschiedene Simulationen laufen. Ein GUI soll diverse Daten und Ergebnisse darstellen. Die M-File (und später weitere) und das GUI sollen aber parallel (erstmal auf 2 bzw. 4 labs) laufen.
Die Funktion/das Gui habe ich einmal als
1.) batch job
und als zweiten Test
2.) mit spmd -> switch case, labindex 1 2
verteilt.
Die Daten haben bei spmd mit labSend und labReceive ausgetauscht.
Ich habe nun (erstmal) zwei Probleme:
1) Das GUI wird nicht angezeigt
"...The labs that run the tasks of a parallel job are MATLAB sessions without displays. ..." aus User's Guide "Parallel Computing Toolbox"
2) während das GUI (lab2) läuft, kommt lab 1 in den IDLE Mode und eine entsprechende Fehlermeldung erscheint.
" A communication mismatch error was encountered:
The other lab became idle during receiving from lab 2 (tag: 'any') "
Ich hoffe Ihr verzeiht meine Unwissenheid und Danke schonmal für eventuelle Antworten oder Hilfestellungen.
zu 1.: Das ist nicht der Sinn der Parallel Computing Toolbox und kann ich mir überhaupt nur schwer vorstellen, wie das zu realisieren wäre. Eine denkbare Anwendung im Zusammenhang mit GUIs wäre, dass du auf deinem Client-Rechner die GUI laufen lässt und über die Callbacks Rechnungen anstößt, die dann parallel laufen.
zu 2.: bitte das komplette Code-Beispiel angeben. Dann kann man leichter nachvollziehen, ob das ein allgemeines Problem des Codes oder ein speziell auf deinem Rechner auftretendes Problem ist.
Danke für die schnelle Antwort! Das habe ich leider schon vermutet, und auch an eine Lösung mit dem GUI auf dem Client Rechner gedacht. Ich wollte es allerdings möglichst modular halten, damit die Anzeige und Bedinung/GUI später mit einer anderen Möglichkeit (zB. Flash) realisiert werden kann.
Primär geht es darum, verschiedene Simulationsmodule mit Modellfamilien zu simulieren. Die Module sind in sich teilweise mit parfor schon parallelisiert. Um das System zu entlasten, sollten die Plots (im GUI) und die jeweiligen Module auf unterschiedlichen Rechnern laufen.
grundsätzlich ist die Idee gut, dir muss nur klar sein, dass die GUI nur auf dem Client-Rechner laufen kann und auch nur dort eine Interaktion von außen möglich ist.
Dein Problem kann ich zunächst nicht reproduzieren. Allerdings würde ich den MATLAB Pool nicht unmittelbar nach den Anweisungen schließen, da damit die Sessions geschlossen werden und auch die Timer nicht mehr ausgeführt werden können.
Grüße,
Harald
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.