|
|
Matlab reagiert erst wieder nachdem m-file berechnet wurde |
|
PeterK |
Forum-Anfänger
|
|
Beiträge: 27
|
|
|
|
Anmeldedatum: 23.12.13
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.07.2014, 18:26
Titel: Matlab reagiert erst wieder nachdem m-file berechnet wurde
|
|
|
|
|
Hallo alle zusammen,
ich weiß nicht ob das ein allgemeines Problem von Matlab ist, oder ob das Problem nur bei mir auftritt.
Ich habe ein Programm geschrieben welches für einen kompletten Run ca. 6 Stunden benötigt (es sind sehr viele for-Schleifen ).
Ich habe nun das Problem, dass die Benutzeroberfläche nach ca. 30 Minuten nicht mehr reagiert. Und nicht nur das, sobald ich die Benutzeroberfläche minimiert habe, dann kann ich sie nicht mehr auf den Bildschirm aufrufen um zu schauen wie weit der Code schon durchgelaufen ist.
Erst nachdem der Code komplett durchgelaufen ist, funktioniert alles wieder wie gehabt. Das ist halt etwas ungeschickt, da ich zwischendurch schon mal gerne die Benutzeroberfläche aufrufen würde um zu checken wie weit die Berechnungen sind.
Ich frage mich nun, ob das ein allgemeines Problem mit Matlab ist, oder ob nur ich dieses Problem habe? Ich nutze Matlab in der Version 2013a.
|
|
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 09.07.2014, 08:48
Titel:
|
|
Während MATLAB rechnet ist es nicht möglich gleichzeitig interaktive Berechnungen im Command Window auszuführen.
Das mit dem Maximieren um den Fortschritt zu verfolgen ist nicht normal, habe ich aber immer wieder mal gehört. Hier hilft es auf der obersten Schleifenebene so etwas wie
oder
einzufügen.
Weiterhin kann man auch noch WAITBAR nutzen um sich den Fortschritt anzeigen zu lassen.
Andreas
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 09.07.2014, 08:51
Titel:
|
|
Was ganz anderes: Gibt es irgendwelche Auswirkungen weil der Code so lange benötigt? Also Projekt/Paper dauert länger? Wie toll wäre es wenn der Code in einer Stunde fertig wäre?
Andreas
|
|
|
PeterK |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 27
|
|
|
|
Anmeldedatum: 23.12.13
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.07.2014, 10:42
Titel:
|
|
Danke, das werde ich mal ausprobieren!
Ja, schön wäre es tatsächlich wenn der Code in nur einer Stunde fertig wäre Ich habe mal überlegt die Berechnung über die GPU ausführen zu lassen (Stichwort CUDA), aber da bin ich noch absoluter Beginner und muss mich erstmal einlesen wie das überhaupt geht! Schön wäre es wenn ich dazu den Code nicht ändern müsste.
Aber für weitere Vorschläge wäre ich sehr offen!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 09.07.2014, 11:09
Titel:
|
|
|
|
|
Hallo,
als erstes sollte man schauen, ob die for-Schleifen wirklich alle nötig sind. Oft lässt sich viel Zeit einsparen, indem man Matrix-/Vektoroperationen nutzt. Mit dem Profiler kannst du untersuchen, welche Teile des Codes die meiste Zeit benötigen, und dich dann darauf konzentrieren, diese Bereiche zu verbessern.
Wenn du die Parallel Computing Toolbox hast, kannst du die vermutlich mehreren Kerne deines Rechners oder sogar eines Clusters aus mehreren Rechnern nutzen. Zudem kannst du auch GPUs ab Compute Capability 1.3 nutzen - CUDA-Kenntnisse sind dazu nicht erforderlich.
Tutorials zu Parallel und GPU Computing finden sich hier:
http://www.mathworks.de/products/pa.....-computing/tutorials.html
Achtung: in R2013a gibt es den Befehl parpool noch nicht, stattdessen kann man matlabpool nutzen. Bei Verwendung von parfor-Schleifen sollte zuvor explizit ein MATLAB Pool geöffnet werden.
Noch zum ursprünglichen Problem: reagieren andere Anwendungen (Web Browser, Task Manager etc.) weiterhin normal?
Grüße,
Harald
|
|
|
PeterK |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 27
|
|
|
|
Anmeldedatum: 23.12.13
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.07.2014, 11:23
Titel:
|
|
Danke für die Antwort! Ich werde mir mal die Parallel Computing Toolbox anschauen.
Ja, alle anderen Windowsprogramme funktionieren weiterhin einwandfrei und ohne Einschränkungen.
|
|
|
PeterK |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 27
|
|
|
|
Anmeldedatum: 23.12.13
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.07.2014, 16:00
Titel:
|
|
Mein Code scheint um den Faktor 3 schneller zu laufen, wenn ich einfach parfor-loops anstatt von for-loops nutze
Jetzt habe ich allerdings ein Problem mit der Indizierung der Eingabe und Ausgabeparameter. Da dies dann aber thematisch hier nicht mehr rein passt werde ich einen neues Thema in der Rubrik Programierung erstellen
Danke für die Hilfe!
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 10.07.2014, 07:30
Titel:
|
|
Zitat: |
Mein Code scheint um den Faktor 3 schneller zu laufen, wenn ich einfach parfor-loops anstatt von for-loops nutze
|
Wie gern ich sowas höre Ich finde es immer schade, wenn ein Unternehmen / eine Software kauft und dann nicht nutzt. Ich bin daran interessiert welches Unternehen es ist und würde mich über ein PN freuen.
Andreas
|
|
|
|
|
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.
|
|