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

Matlab reagiert erst wieder nachdem m-file berechnet wurde

 

PeterK
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 23.12.13
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 08.07.2014, 18:26     Titel: Matlab reagiert erst wieder nachdem m-file berechnet wurde
  Antworten mit Zitat      
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 Smile).

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.
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 09.07.2014, 08:48     Titel:
  Antworten mit Zitat      
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

Code:

wait(0.01)
 


oder

Code:


einzufügen.

Weiterhin kann man auch noch WAITBAR nutzen um sich den Fortschritt anzeigen zu lassen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 09.07.2014, 08:51     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
PeterK
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 23.12.13
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 09.07.2014, 10:42     Titel:
  Antworten mit Zitat      
Danke, das werde ich mal ausprobieren!

Ja, schön wäre es tatsächlich wenn der Code in nur einer Stunde fertig wäre Smile 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! Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.07.2014, 11:09     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
PeterK
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 23.12.13
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 09.07.2014, 11:23     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
PeterK
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 23.12.13
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 09.07.2014, 16:00     Titel:
  Antworten mit Zitat      
Mein Code scheint um den Faktor 3 schneller zu laufen, wenn ich einfach parfor-loops anstatt von for-loops nutze Smile

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 Smile

Danke für die Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 10.07.2014, 07:30     Titel:
  Antworten mit Zitat      
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 Smile 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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.