WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Parallele Programme

 

micro
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 23.01.08
Wohnort: Kiel
Version: ---
     Beitrag Verfasst am: 23.01.2008, 22:06     Titel: Parallele Programme
  Antworten mit Zitat      
Hi!
Kenne mich mit Matlab noch nicht sonderlich gut aus und stehe daher vor einem Problem, welches sich hoffentlich leicht lösen lässt:
Ich möchte verschiedene Programme (jedes auf eigenem MatLab / Rechner) parallel laufen lassen. Nun speichert ein Programm regelmäßig Daten (als *.mat-file), auf die das andere Programm wiederum regelmäßig zugreift. Wie kann ich nun verhindern, dass das eine Programm gerade in dem Moment versucht, die Daten auszulesen, in dem das andere Programm diese gerade speichert, da das ja eine Fehlermeldung incl. Abbruch zur Folge hätte. Ich möchte das *.mat-file also quasi solange blockieren (mit einem flag oder ähnlichem), bis der Speichervorgang abgeschlossen ist bzw. das zugreifende Programm soll in diesem Fall nicht abbrechen, sondern es einfach 1-2 Sekunden später nochmal probieren (möchte die Programme untereinander nicht als Funktion aufrufen und die Werte übergeben, da sie parallel laufen sollen. Für Vorschläge zu dem "Zugriffsproblem" oder auch allgemein, wie man am besten Programme parallel ablaufen lässt (und sie trotzdem synchronisiert...) wäre ich sehr dankbar!
Grüsse
micro
Private Nachricht senden Benutzer-Profile anzeigen


Michaela
Forum-Century

Forum-Century


Beiträge: 239
Anmeldedatum: 12.07.07
Wohnort: ---
Version: bis 2007b
     Beitrag Verfasst am: 23.01.2008, 23:43     Titel:
  Antworten mit Zitat      
Hmm keine Ahnung wie sich das am besten regeln lässt, hängt vermutlich auch vom verwendeten Dateisystem ab.

Mir fällt folgender workaround ein:
Zu jedem mein_workspace_X.mat legst du auch noch eine kleine ascii datei an, zB mein_workspace_X.txt oder so.

Wird das mat-file überschrieben, so wird zuerst die txt datei gelöscht, dann das mat file erstellt und danach die txt-datei wieder geschrieben. (eventuelle genauso bei lese-zugriff).

Will nun ein anderes Programm auf das mat-file zugreifen, so muss zuerst geprüft werden, ob die txt datei besteht: txt datei löschen, mat file lesen oder schreiben , txt datei erstellen. Besteht die txt datei nicht, dann kommt eine kleine warteschleife...
_________________

---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
Private Nachricht senden Benutzer-Profile anzeigen
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 24.01.2008, 09:43     Titel:
  Antworten mit Zitat      
Zitat:
Wie kann ich nun verhindern, dass das eine Programm gerade in dem Moment versucht, die Daten auszulesen, in dem das andere Programm diese gerade speichert, da das ja eine Fehlermeldung incl. Abbruch zur Folge hätte.


Deine Sorgen sind Grundlos, denn MATLAB ist nicht parallelfähig!

Es sei denn wir sprechen von 2 MATLAB sessions die gleichzeitig gestartet wurden (zB. eine Session pro CPU auf einem DualCore Rechner). Dann müssen Mechanismen eingebaut werden, die den Zugang zum File untereinander aushandeln.


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 24.01.2008, 09:49     Titel: Re: Parallele Programme
  Antworten mit Zitat      
Moin outsider,

ich denke er hat zwei Matlab-Instanzen offen, die auf beide auf ein Netzlaufwerk zugreifen. Von daher muss wohl soetwas eingebaut werden, oder?
Ich denke der Vorschlag von Manuela müsste funktionieren.

micro hat Folgendes geschrieben:

Ich möchte verschiedene Programme (jedes auf eigenem MatLab / Rechner) parallel laufen lassen.


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 24.01.2008, 11:50     Titel:
  Antworten mit Zitat      
Hi Steve,

stimmt - hast Recht... Habe übersehen...
Dann spricht nichts gegen Michaelas Vorschlag.

Damit es sogar noch schneller läuft (Schreibzugriffe auf die Platte sind ja bekanntlich nicht die schnellsten) würde ich vorschlagen einen RAM-Laufwerk anzulegen. Hinweise dazu gibt es viel im Netz (Stichword ramdrive.exe). Ist quasi eine virtuelle Festapltte die komplett im physischen RAM abgebildet wird und auch viel schneller arbeitet. Somit können die Schreibzugriffe verkürzt werden.


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
micro
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 23.01.08
Wohnort: Kiel
Version: ---
     Beitrag Verfasst am: 24.01.2008, 18:08     Titel:
  Antworten mit Zitat      
Schon mal besten Dank für die schnellen Vorschläge!
Werd wohl erst nächste Woche dazu kommen, sie auszuprobieren...
(brauch das für ne HiWi-Tätigkeit an der Uni).
Schreib dann nochmal, obs geklappt hat!
Grüsse
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.