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

stmcb führt zu 'Out of Memory'

 

eey
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 31.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.06.2012, 11:57     Titel: stmcb führt zu 'Out of Memory'
  Antworten mit Zitat      
Hallo zusammen,

ich benutze momentan die Matlab Funktion stmcb um ein dynamisches System zu identifizieren, was soweit auch funktioniert.

Allerdings geht das nur wenn meine Zeitreihe nicht zu lang ist, ansonsten bekomme ich eine Fehlermeldung von wegen 'Out of Memory'. Dabei ist die Messreihe mit ca.10000 Werten meiner Meinung nach gar nicht soooo lang.

Woran könnte das liegen bzw kann man das irgendwie beheben? Der Rechner auf dem ich das mache hat 2 GB Arbeitsspeicher, also das sollte doch normalerweise reichen, oder?

Schöne Grüße,
eey
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.06.2012, 12:21     Titel: Re: stmcb führt zu 'Out of Memory'
  Antworten mit Zitat      
Hallo eey,

Es kommt immer darauf an, wie viel Speicher noch frei ist. Wenn der Rest des Programms haufenweise riesige temporäre Arrays erzeugt, ist der Speicher irgendwann gefüllt. Dann kann auch ein einzelnes "X = zeros(1, 2)" ein Out-Of-Memory-Error erzeugen.

Wie sieht denn die Ausgabe von "feature memstats" direkt vor dem Aufruf der betroffenen Funktion aus? Mit wievielen Elementen funktioniert das Programm denn noch?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
eey
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 31.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2012, 14:28     Titel:
  Antworten mit Zitat      
Hallo Jan,

erst mal vielen Dank für die Antwort. Kurz vor dem Aufruf sieht das folgendermaßen aus:

Code:
>> feature memstats

    Physical Memory (RAM):
        In Use:                             1871 MB (   74fc6000)
        Free:                               6301 MB (  189d73000)
        Total:                              8173 MB (  1fed39000)
    Page File (Swap space):
        In Use:                             2183 MB (   88786000)
        Free:                              14161 MB (  37511d000)
        Total:                             16344 MB (  3fd8a3000)
    Virtual Memory (Address Space):
        In Use:                             1917 MB (   77d6b000)
        Free:                            8386690 MB (7ff88275000)
        Total:                           8388607 MB (7fffffe0000)
    Largest Contiguous Free Blocks:
         1. [at   18000b000]             8378131 MB (7fd713b5000)
         2. [at 7feff921000]                4101 MB (  100523000)
         3. [at    880a0000]                2931 MB (   b7390000)
         4. [at   13f459000]                1035 MB (   40ba7000)
         5. [at 7fef14e5000]                 103 MB (    672b000)
         6. [at    2d790000]                  61 MB (    3d30000)
         7. [at    7c148000]                  46 MB (    2e98000)
         8. [at    708c0000]                  36 MB (    2470000)
         9. [at 7fef7c18000]                  23 MB (    17a8000)
        10. [at    777d7000]                  16 MB (    1099000)
                                            ======= ==========
                                         8386487 MB (7ff7b7b3000)

ans =

  8.7851e+012


Also wie zu sehen sind noch über 6 (!!) GB Ram frei. Alles was ich dann mache ist stmcb mit meinen Messwerten aufzurufen.

Mit 10000 Messwerten klappt das gerade so noch (das ist jetzt mein Privatrechner, in der Arbeit geht das schon nicht mehr). Bei 20000 Messwerten kann man im Taskmanager aber schon direkt zusehen wie der Speicher komplett voll läuft (Die ganzen 8 GB). Der Rechner freezed dann sogar.

Ich befürchte ja dass das am Algorithmus selbst liegt dass der einfach nicht mit so langen Messreihen klar kommt, kann das sein?

Schöne Grüße,
eey
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.06.2012, 15:55     Titel:
  Antworten mit Zitat      
Hallo,

der Algorithmus scheint ein lineares Gleichungssystem aufzustellen. Wenn man mal 10000 Gleichungen mit 10000 Unbekannten rechnet, ist man bei rund 800 MB alleine für eine Matrix. Bei 20000 sind wir bei 3,2 GB. Wenn vielleicht noch 2 solcher Matrizen gebraucht werden und damit auch noch was gemacht werden soll, ist der Speicher schnell voll.
Vielleicht mal mit Downsampling probieren, wenn da nicht zuviel Information verloren geht?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
eey
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 31.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2012, 16:31     Titel:
  Antworten mit Zitat      
Hm ok, so etwas in der Richtung hatte ich befürchtet^^

Danke auf jeden Fall für die Antwort, dann werd ichs wohl oder übel mit Downsampling versuchen müssen (oder ich kauf nochmal 8 GB Ram Very Happy ).

Schöne Grüße,
eey
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 - 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.