|
Alex4456 |

Forum-Anfänger
|
 |
Beiträge: 47
|
 |
|
 |
Anmeldedatum: 17.09.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.10.2014, 09:05
Titel: Parallelisierung parfor
|
 |
Hallo,
ich fange gerade erst mit dem Thema an. Ich habe mir die Hilfe soweit durchgelesen und das Grundprinzip verstanden. Leider bin ich mir bei einigen Sachen nicht ganz sicher. Ich versuche gerade eine recht komplexe(große) For Schleife auf parfor umzustellen. Falls jemand dafür ein gutes Tutorial hat bin ich dankbar.
Ich bekomme den Fehler: fix the usage of indicated variable matlab
Mir ist bekannt, dass die Variablen in der parfor einer gewissen Klassifikation unterliegen (sliced etc.). Leider weiß ich nicht woran es hier scheitert.
Wäre für Hilfe dankbar .
Grüße
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.10.2014, 09:39
Titel:
|
 |
|
|
Alex4456 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 47
|
 |
|
 |
Anmeldedatum: 17.09.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.10.2014, 11:54
Titel:
|
 |
Ah ok, danke dir. Also müsste man quasi immer die gesamten Daten auf einmal zuweisen und kann icht einzelne Spalten ansprechen?
Ich habe versucht mein Skript mit parfor zu optimieren aber das hat leider nicht ganz so funktioniert.. im wesentlichen versuche ich viele fit-Befehle gleichzeitig aufzuführen, da diese am meisten zeit beanspruchen.
Gibt es daneben eigentlich auch die Möglichkeit ein M.-File ganz oft gleichzeitig auszuführen?
Ich habe ein Skript was Dateien analysiert. Kann Ich mit der parallel Toolbox auch gleichzeitig mehrere Dateien zu bearbeitet? So quasi das parfor umgehen?
Quasi = parfor function(sript) end
ohne das ich jetzt das eigentliche Skript ändern muss? Ich bekomme momentan ein Fehler, finde ihn jedoch nicht. Ist das überhaupt generell möglich?
Grüße
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.10.2014, 14:12
Titel:
|
 |
Hallo,
Zitat: |
Ah ok, danke dir. Also müsste man quasi immer die gesamten Daten auf einmal zuweisen und kann icht einzelne Spalten ansprechen? |
Typischerweise einzelne Zeilen oder einzelne Spalten, aber nicht beides.
Zitat: |
Gibt es daneben eigentlich auch die Möglichkeit ein M.-File ganz oft gleichzeitig auszuführen? |
Das würde ich sogar als Hauptanwendung sehen:
Dabei sollte analyzeFiles eine Funktion sein, die den Dateinamen entgegennimmt und die Daten zurückgibt. Skripten sind für den Zweck nicht besonders geeignet.
Zitat: |
Ich bekomme momentan ein Fehler, finde ihn jedoch nicht. |
Welcher Code produziert welchen Fehler?
Grüße,
Harald
|
|
|
Alex4456 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 47
|
 |
|
 |
Anmeldedatum: 17.09.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.10.2014, 14:32
Titel:
|
 |
Hallo Harald,
ich hatte das schon so gemacht wie du in deinem Vorschlag jetzt, nämlich mStartSkript :
meiner Fehler lautet wie folgt:
Gibt es eine Möglichkeit einen genauere Fehler also von der Zeile des dateiAnalyse Skripts zu bekommen? Ein normales Debugging ist soweit ich weiß nicht möglich?
Müss ich das Skript dateiAnalyse.m jetzt auch nach den Regeln der parfor Schleife umwandeln? z.B habe ich save(..) was normalerweise in parfors nicht erlaubt ist und mit andere funktion parsave() umgegangen werden muss. Das allein hat den Fehler noch nicht behoben.
Grüße
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.10.2014, 16:09
Titel:
|
 |
Hallo,
die Meldung habe ich so noch nicht gesehen.
Kannst du testhalber mal das Abspeichern in .mat-Dateien auskommentieren?
Folgendes hat bei mir übrigens problemlos funktioniert:
Zitat: |
Müss ich das Skript dateiAnalyse.m jetzt auch nach den Regeln der parfor Schleife umwandeln? |
Es sollte wie gesagt eine Funktion sein.
Grüße,
Harald
|
|
|
Alex4456 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 47
|
 |
|
 |
Anmeldedatum: 17.09.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.10.2014, 08:18
Titel:
|
 |
Guten Morgen.
Also ich habe dein Testbeispiel ausprobiert. Es funktioniert ohne Probleme.
Meine eigene Funktion funktioniert mit FOR geht gut jedoch gibt es wie gesagt den Fehler bei PARFOR. Ich bin jetzt etwas ratlos, da der Fehler ja sehr unspezifisch ist. Kann ich den Fehler genauer bestimmen?.
Eine grundsätzliche Frage: Versucht matlab jetzt die Funktion savedata parallel auszuführen oder nur auf einem Core? Eigentlich sollte ja letzteres der Fall sein.
Gibt es vielleicht eine Alternativmöglichkeit die Aufgaben über batch zuverteilen?
Grüße
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.10.2014, 08:26
Titel:
|
 |
Hallo,
wie gesagt: versuch mal, das Speichern auszukommentieren.
Markiert Code Analyzer etwas in dem Code?
Wenn du den Code zur Verfügung stellst, schau ich mir ihn gerne mal an.
Ansonsten gäbe es die Möglichkeit, mit createJob/createTask zu arbeiten, was aber doch ein gewisser Zusatzaufwand ist.
Zitat: |
Eine grundsätzliche Frage: Versucht matlab jetzt die Funktion savedata parallel auszuführen oder nur auf einem Core? Eigentlich sollte ja letzteres der Fall sein. |
Ich würde sagen: Parallel, da es innerhalb von parfor ist.
Grüße,
Harald
|
|
|
Alex4456 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 47
|
 |
|
 |
Anmeldedatum: 17.09.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.10.2014, 08:43
Titel:
|
 |
Trotz deiner guten Erklärung im zweiten Beitrag bezüglich des Auslesen von Spalten im Cellarray, habe ich den gleichen Fehler wieder gemacht und die Inputs für meine Funktion mit input{ii,1} input{ii,2} angesprochen, was dann zum Fehler geführt hat. Muss mich erst noch daran gewöhnen.
Komischerweise hat er das nicht im Code markiert. Aber danke soweit, es läuft jetzt soweit alles parallel mit einer CPU Auslastung von 100%
Danke!
|
|
|
|
|
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 - 2025
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.
|
|