64bit fähiges Programm
-
Hi,
ich plane mir einen Solver für ein Optimierungsproblem zuzulegen, welches ich zu lösen habe. Wichtig ist, dass dieser Solver während der Ausführung mehr als 4GB Speicher brauchen wird. Nun habe ich die Entwickler dieses Solvers angeschrieben, ob das Programm 64bit fähig ist und den kompletten Speicher nutzen kann, worauf eine Sekretärin geantwortet hat, dass sie mir den Quellcode schicken würden und ich damit anstellen kann, was ich will.
Jetzt frage ich hier lieber noch mal nach: Wenn ich dieses Programm als 64bit Programm kompiliere, kann es dann automatisch den ganzen Speicher nutzen oder hängt das stark von der Programmierung ab bzw. erfordert Programmierdisziplin?
Danke und Gruß
-
Es kann dann automatisch den ganzen Speicher nutzen, die Frage ist aber, ob es das auch tut. Es kann gut sein, dass die Programmierer irgendwelche Sicherheitsabfragen/Beschränkungen eingebaut haben. Dies ist in der wissenschaftlichen Programmierung jedoch eher unüblich (die meisten Leute sind froh, wenn ein Programm überhaupt funktioniert). Ich würde vorschlagen: Probier es einfach aus.
-
Schon mal die üblichen Verdächtigen wie "IBM ILOG CPLEX" abgeklappert? CPLEX, kann IMHO 64 Bit in den neueren Versionen und auch mit der 32Bit Version ist es möglich die Zwischenergebnisse auf die Festplatte zu dumpen (Optimierung dauert dann natürlich länger).
-
Ja klar, CPLEX benutze ich im Moment, das ist mit Abstand der schnellste Solver auf allen Gebieten. Allerdings habe ich für mein Problem eine lineare Variante und eine quadratisch beschränkte Variante. CPLEX kann letztere nicht lösen, weil das Problem nicht konvex ist. Deshalb habe ich mal nach Solvern für solche Probleme Ausschau gehalten und SNOPT gefunden, was über das NEOS Interface auch viel bessere Laufzeiten hatte als CPLEX mit der linearen Variante, allerdings nur bis 4GB Speicherverbrauch, weil dann NEOS Dicht macht.
Also danke für die Ratschläge, ich denke ich probier es einfach mal aus.