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

Speicher freigeben

 

mau192
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 21.03.16
Wohnort: ---
Version: R2014a
     Beitrag Verfasst am: 21.03.2016, 10:04     Titel: Speicher freigeben
  Antworten mit Zitat      
Hallo zusammen,

schon länger lese ich mich durch verschiedene Foren um mein Problem zu lösen, da mich bisher nichts weitergebracht hat, hoffe ich ihr könnt mir nun helfen!

Ich möchte ein Optimierungsproblem mit der Funktion intlinprog lösen. Das funktioniert für Beispiele mit kleinen Matrizen sehr gut. Kommen negative Zahlen in der Zielfunktion vor, kommt Matlab sehr schnell an seine Grenzen und spuckt folgende Fehlermeldung aus:

Intlinprog stopped because it exceeded its allocated memory.


Ich arbeite auf einem 64bit Rechner mit 64bit Matlab. Den virtuellen Arbeitsspeicher habe ich in den Systemeinstellungen bereits erweitert (ohne Erfolg). Auch die Simulation auf einem PC mit 128 GB RAM hat das Programm an der gleichen Stelle abrechen lassen. Im Task-Manager konnte ich beobachten, dass der RAM nie an seine Grenzen gerät.

Es scheint so, also würde Matlab nur auf einen Teil des RAMs zugreifen können. Wie kann ich das ändern?

Vielen Dank fürs durchlesen und ich freue mich auf eure Lösungsvorschläge!

Viele Grüße
Ulli
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 21.03.2016, 13:40     Titel:
  Antworten mit Zitat      
auf wie viel speicher matlab zugreifen kann kannst du mit dem befehl memory rausfinden.
was hast du denn bis jetzt versucht? der erste anschlag bei google liefert ja schon hinweise und weiterführende links. es bringt ja nix wenn wir dir das was da steht nochmal sagen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
mau192
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 21.03.16
Wohnort: ---
Version: R2014a
     Beitrag Verfasst am: 21.03.2016, 14:22     Titel:
  Antworten mit Zitat      
Erstmal danke für deine Antwort!

Der Abruf memory liefert folgendes Ergebnis:

Code:
>> memory
Maximum possible array:     23029 MB (2.415e+10 bytes) *
Memory available for all arrays:     23029 MB (2.415e+10 bytes) *
Memory used by MATLAB:       705 MB (7.394e+08 bytes)
Physical Memory (RAM):      8079 MB (8.471e+09 bytes)

*  Limited by System Memory (physical + swap file) available.


Folgende Einstellungen habe ich, mit hilfe der google Treffer, schon versucht:
- Virtuellen RAM auf das dreifache des physikalischen RAMs gesetzt (Erweiterte Systemeinstellungen)
- sparse-Matrizen verwendet
- Matlab im Task-Manager die Priorität "hoch" zugewiesen

Alle Einstellungen haben keine Verbesserung hervorgerufen, das Programm stoppt immer an der gleichen Stelle.

Wie man bei dem Abruf von memory sieht, verwendet Matlab nur einen Teil des zur Verfügung stehenden Speichers. Ich denke darin liegt das Problem, nur kann ich keine Lösung finden diese Zuweisung zu erhöhen!
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 21.03.2016, 14:30     Titel:
  Antworten mit Zitat      
woran sihst du das matlab nicht den ganzen speicher benutzt bei der rechnung ? die 700 mb sind ja nur das was matlab grade nutzt.
8gb ram sind auch nicht so viel aber du meinstest ja er bricht auch bei 128 gb ab.
sicher giebt es auch den speicher auf der festplatte aber der ist so langsam das ich den nur in absoluten notfällen benutzen würde.
hast du mal die weiterführenden beschreibungen durchgelesen und versucht an den solver einstellungen zu drehen ?
http://de.mathworks.com/help/optim/improving-results.html
ohne das entsprechende problem mit code ist es immer schwer selber etwas rumzuprobieren Smile
grüße
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
mau192
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 21.03.16
Wohnort: ---
Version: R2014a
     Beitrag Verfasst am: 23.03.2016, 08:12     Titel:
  Antworten mit Zitat      
Guten morgen,

danke für deine Antwort. Ich bin gerade noch am rumprobieren, um das Problem mithilfe der Solver Einstellungen zu lösen. Sieht schon gut aus, immerhin keine Speicher Überschreitung mehr, aber sehr lange Laufzeiten... Ich probiere weiter und melde mich dann noch einmal, wenn das Problem gelöst ist (oder auch nicht Wink)

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.03.2016, 16:47     Titel:
  Antworten mit Zitat      
Hallo,

je mehr Informationen du zur Verfügung stellst, desto eher kann man dir helfen. Die Info, dass du intlinprog verwendest, ist für sich genommen etwas dürftig.

Mit virtuellem RAM in dieser Größenordnung wäre ich vorsichtig. Unter Windows 7 habe ich die Erfahrung gemacht, dass dies Prozesse extrem verlangsamen kann und man nicht mal mit dem Task Manager den Prozess abschießen kann.

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

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 21.03.16
Wohnort: ---
Version: R2014a
     Beitrag Verfasst am: 29.03.2016, 13:01     Titel:
  Antworten mit Zitat      
Hallo,

danke Harald für deine Antwort. Ich habe nun alle möglichen Einstellungen für intlinprog unter dem Kapitel "Tuning Integer Linear Programming" ausprobiert und noch keine Lösung gefunden. Es gibt zwar keine Speicherüberschreitung mehr, aber innerhalb zwei Stunden Laufzeit wird auch keine einzige Lösung gefunden.

Hier mein Code:
Code:

options = optimoptions(@intlinprog, 'MaxTime',7200, 'LPMaxIter', 10e20);
[x,fval,exitflag,output]=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,options);
 


Die verwendeten Input Variablen f,intcon, A, b, Aeq, beq, lb, und ub habe ich in einer Datei angehängt.

Habt ihr eine Idee welche Einstellungen ich noch vornehmen kann? Vielen Dank für eure Hilfe!

Viele Grüße
Ulli

InputVariablen.zip
 Beschreibung:

Download
 Dateiname:  InputVariablen.zip
 Dateigröße:  36.66 MB
 Heruntergeladen:  727 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.03.2016, 14:07     Titel:
  Antworten mit Zitat      
Hallo,

das Optimierungsproblem ist sehr groß; insofern wundert mich die Laufzeit nicht unbedingt. Du kannst ja mal 'Display' auf 'iter' stellen und dir den Fortschritt der Optimierung ansehen.

Variablen bitte grundsätzlich als .mat-Datei zur Verfügung stellen. Das ist deutlich handlicher als riesige Excel-Dateien.

Was ist zudem die Bedeutung von A_1 und A_2?

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

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 21.03.16
Wohnort: ---
Version: R2014a
     Beitrag Verfasst am: 29.03.2016, 14:40     Titel:
  Antworten mit Zitat      
Hallo,

danke für den Hinweis mit der .mat datei. Den Rechenfortschritt beobachte ich schon, leider bringt mich das auch nicht weiter.

A_1 und A_2 waren Hilfsgrößen, da die Variable A zu groß war um sie auf einmal in das Excel File zu exportieren. Ich habe nur vergessen sie zu löschen, sie haben keine Bedeutung...

Weist du ungefähr wie lang die Berechnung mit solch großen Variablen dauert? Ziel des Programms ist es eigentlich, solche Probleme täglich in wenigen Minuten zu lösen. Ist das dann wohl mit Matlab gar nicht möglich?

Viele Grüße
Ulrike
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ich habe mit Problemen dieser Dimension keine Erfahrung.

Das klingt nach einer kommerziellen Anwendung? Dann solltest du am besten den Technischen Support von MathWorks befragen.

Ob es mit MATLAB (oder überhaupt irgendeinem Tool) möglich ist, ein Problem dieser Größenordnung in wenigen Minuten zu lösen, kann ich so nicht beantworten.

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

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 21.03.16
Wohnort: ---
Version: R2014a
     Beitrag Verfasst am: 29.03.2016, 15:10     Titel:
  Antworten mit Zitat      
Hallo,

vielen Dank, dann werde ich dort mal nachfragen!

Viele Grüße
Ulrike
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.