|
|
parfor : Workspace und Variablenproblem |
|
zmaier |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 14.09.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.09.2017, 17:25
Titel: parfor : Workspace und Variablenproblem
|
|
Hallo,
folgendes Problem.
Ich habe 100 Messdateien, die Datei wird importiert, mit den Daten wird etwas ausgerechnet (im Endausbau des Scripts mittels Simulinkmodell), Ergebnis kommt in Vektor.
Das ganze funktioniert wunderbar mit einer normalen for-Schleife.
Da die Aufage super parallelisierbar ist wollte ich die Auswertung mittels parfor beschleunigen.
Warum klappt das nicht?
Die Variablen sind irgendwie nicht sichtbar.
Ich habe auch schon probiert die Zeil loadDatei... mittels
Irgend eine Idee warum? Müsste doch machbar sein, oder.
Schöne Grüße
Martin
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.449
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.09.2017, 19:11
Titel:
|
|
Hallo,
damit man dir weiterhelfen kann, müsste man die loadDatei.m und idealerweise noch min. 2 Beispieldateien haben.
Grüße,
Harald
|
|
|
zmaier |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 14.09.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.09.2017, 09:13
Titel:
|
|
|
|
|
Hallo Harald,
danke für deine Hilfe, ich habe alle Daten jetzt angehängt.
Testdaten.zip ... hier sind die einzulesenden Dateien drinnen
mdfimport.m ... das ist das Script zum Datenimport
Auswertung.m ... Auswertescript ansich.
Mit einer for-Schleife werden die Daten richtig eingelesen, als Test gebe ich einfach die Länge der Variable VehV_v_1 aus. Ist die Länge immer unterschiedlich, wird die Datei richtig eingelesen.
Mit parfor bekomme ich den Fehler :
An UndefinedFunction error was thrown on the workers for 'VehV_v_1'. This might be because the file containing 'VehV_v_1' is not
accessible on the workers. Use addAttachedFiles(pool, files) to specify the required files to be attached. See the documentation
for 'parallel.Pool/addAttachedFiles' for more details.
Caused by:
Undefined function or variable 'VehV_v_1'.
Schöne Grüße
Martin
Beschreibung: |
|
Download |
Dateiname: |
mdfimport.m |
Dateigröße: |
109.07 KB |
Heruntergeladen: |
316 mal |
Beschreibung: |
|
Download |
Dateiname: |
Auswertung.m |
Dateigröße: |
346 Bytes |
Heruntergeladen: |
323 mal |
Beschreibung: |
|
Download |
Dateiname: |
Testdaten.zip |
Dateigröße: |
27 KB |
Heruntergeladen: |
278 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.449
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 15.09.2017, 19:18
Titel:
|
|
Hallo,
das Problem dürfte sein, dass mdfimport die Daten im Base Workspace ablegt. Wenn ich mich recht erinnere, gibt es auch eine Syntax, mit der man in ein .mat-File speichern kann. Versuch mal das, und dann die .mat-Datei laden mit
Grüße,
Harald
|
|
|
zmaier |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 14.09.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.09.2017, 09:40
Titel:
|
|
Hallo Harald,
danke für den Tip.
Im Endausbau der ganzen Auswertung wird ein anderes Script zum Dateneinlesen verwendet, welches die Daten ebenfalls auch noch bearbeitet und dann im Workspace ablegt. Das Scipt ist eine DLL, ich sehe also nicht wirklich was darin passiert und ich darf das Sciprt wegen Lizenzgründen auch nicht hier hochladen
Gibt es eine Möglichkeit expliziet anzugeben in welchem Workspace die Ausgabe erfolgen soll? Ich dachte mit evalin sollte das möglich sein?
[/code]
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.449
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 20.09.2017, 10:06
Titel:
|
|
Hallo,
wird ein Skript verwendet oder eine Funktion?
Wenn man sich von Funktionen Rückgabeargumente zurückholt, werden sie automatisch in den richtigen Workspace abgelegt.
Zitat: |
Das Scipt ist eine DLL, ich sehe also nicht wirklich was darin passiert |
Ein Skript als DLL klingt merkwürdig. Was darin passiert bzw. wie die DLL zu verwenden ist, sollte dokumentiert sein
Zitat: |
Gibt es eine Möglichkeit expliziet anzugeben in welchem Workspace die Ausgabe erfolgen soll? Ich dachte mit evalin sollte das möglich sein? |
evalin, assignin etc. verursachen mehr Probleme als sie lösen und sollten daher vermieden werden.
Zitat: |
ich darf das Sciprt wegen Lizenzgründen auch nicht hier hochladen |
Das ist schade. Am besten helfen kann man nämlich, wenn man das Problem vor Augen hat und damit experimentieren kann.
Häufig hilft es, den Inhalt der for-Schleife in eine Funktion auszulagern und dann die Funktion aus der parfor-Schleife heraus aufzurufen.
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|