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

Speichernutzung Matlab

 

Kai1986
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 12.10.11
Wohnort: Wolfsburg
Version: ---
     Beitrag Verfasst am: 12.10.2011, 09:36     Titel: Speichernutzung Matlab
  Antworten mit Zitat      
Ich habe Matlab 2007b mit 32bit auf Windows XP

Leider läuft mir bei der Simulation immer der Speichwer voll (Out of memory), aber er nutzt maximal 2gb Arbeitsspeicher von 4 vorhandenen gb wie kann ich dieses Problem lösen und ihm sagen er soll mehr abrebitsspeicher nutzen. Oder gibt es eine andere Lösung?
Private Nachricht senden Benutzer-Profile anzeigen


eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 12.10.2011, 09:43     Titel:
  Antworten mit Zitat      
Möglicherweise hat eine Rechenoperation mehr Speicherbedarf als vorhanden ist, dann würde sich das nicht im Speicherverlauf darstellen, weil sofort abgebrochen wird.

Mit einem einfachen Code kannst du sehen, wie der Speicher aufakkumuliert wird:

Code:
ii = 1; while true, C{ii} = rand(1000); ii = ii + 1; end


Achtung (!): Endlosschleife, Abbruch mit Strg + C (Windows).

Alternativ kannst du dir virtuellen Speicher anlegen, der aber massiv langsamer arbeitet, als der RAM.
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: 12.10.2011, 12:33     Titel:
  Antworten mit Zitat      
Es gibt sehr viele Gründe und ebenso viele Möglichkeiten es zu lösen.

"Simulation" heisst Simulink?

Wenn ja: Wo werden welche Ergebnisse in den Speicher geschrieben? (To Workspace, Scope, Out) und was könnte man davon reduzieren (Ungenutzte Kanäle, Dezimation der Zwischenschritte, Datentypen)?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 12.10.2011, 13:24     Titel:
  Antworten mit Zitat      
Hallo

Windows XP stellt für Programme maximal 2 GB Arbeitsspeicher zur Verfügung, obwohl Insgesamt 4 GB verfügbar sind.
Es ist möglich in BOOT.INI einen Switch auf 3GB zu setzen. Das hilft schon mal ein wenig

http://technet.microsoft.com/en-us/.....y/bb124810(EXCHG.65).aspx
Private Nachricht senden Benutzer-Profile anzeigen
 
JoeFritzegard
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 11.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2011, 15:39     Titel:
  Antworten mit Zitat      
Je nachdem, was du simulierst, und welche Zwischenwerte du brauchst, kannst du dir ein einfaches Skript schreiben, das dir deine Simulation aufruft und die letzten Zwischenwerte die du brauchst speichert. Matlab beenden, neustarten und Skript wieder ausführen (natürlich die letzten Werte am Anfang laden lassen) ... hab ich mal so gemacht. Geht ganz gut, wenn einem der Prozessspeicher vollläuft, ohne dass der Workspace selber zu groß ist, bzw. wenn du für die weitere Berechnung nicht alle Zwischenergebnisse brauchst.

Wenn die Simulation so zu lange dauern würde, bzw. du 1000mal matlab neu starten müsstest, kann man matlab auch sehr fein übers terminal starten lassen:

START "run1" /b %matlabP% -nosplash -nodesktop -r %scriptName%

(matlabP-> Pfad zu deiner Matlab.exe, scriptName: Das Skript, das du ausführen möchtest)

Das baust du dir in eine Schleife ein, die halt schaut, ob matlab fertig ist, oder nicht. (Ich hab das glaub ich gemacht, indem geprüft wird, ob der letzte Zwischenschritt schon als datei vorliegt oder nicht, weil Matlab selber über irgendeinen 'subprozess' oder so gestartet wird, sodass der normale befehl \wait (wartet mit dem nächsten Terminalschritt bis der vorherige beendet wurde) nicht funktioniert)

Aber ... weiß halt nicht genau, wo dein Problem liegt Wink
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 - 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.