![]() |
scientific computing: mehr als 4 GB RAM nutzen!?
Hallo,
mein Problem ist sehr speziell. Hoffe, jemand kennt sich damit aus. Ich habe mit Delphi ein Programm für wissenschaftliche Berechnungen geschrieben - sowas wie FEM bzw. Reaktions-Diffusions-Gleichungen aus der Chemie etc. Mit leistungsstärkeren Prozessoren kann ich nun die Berechnungen genauer machen, d.h. ich bekomme eine höhere räumliche Auflösung. Problem: obwohl der Rechner 64 GB RAM hat, zeigt das Programm an "Zu wenig Arbeitsspeicher", wenn mehr als 4 GB in den Speicher geladen werden sollen. Das liegt sicher daran, dass meine Delphi.Version (2006) nur einen 32-Bit-compiler hat. Aber auch Delphi XE soll nur einen 32-Bit-Compiler haben! Damit ist es unmöglich, mehr als 4 GB zu nutzen. Habt ihr eine Idee, wie ich es trotzdem machen könnte? Gibt es schon 64-Bit-Compiler? Gibt es einen Trick oder eine Erweiterung? (Anmerkung: Nein, ich kann das Programm nicht so optimieren, dass ich < 4 GB brauche) Danke |
AW: scientific computing: mehr als 4 GB RAM nutzen!?
-Delphi XE2 soll einen 64Bit-Compiler bekommen
-FPC/Lazarus -PAE |
AW: scientific computing: mehr als 4 GB RAM nutzen!?
ne richtig schmutzige methode wäre, das dein Hautprogramm ein subprogramm pro benötigtes Gigabyte(oder 4GByte) erstellt. Per pipelines/TCP kommuniziert dein Programm zwischen sich und den MemoryNodes. Jede node sollte so für sich 4GByte allokieren können.
Allerdings weiß ich nicht inwiefern die Daten bei dir gestreamed werden können. MFG Memnarch |
AW: scientific computing: mehr als 4 GB RAM nutzen!?
Im Moment würde ich dir den FreePascal-Compiler nahe legen, so wie mkinzler schon gesagt hat.
Ob XE2 einen 64-Bit Compiler enthalten wird, glaube ich erst, wenn ich es in den Händen halte :mrgreen: |
AW: scientific computing: mehr als 4 GB RAM nutzen!?
Es gibt noch eine Methode die auch auf 32bit Funktioniert. Man kann eine MMF benutzen, in der immer nur ein Stück gemappt wird, so daß man nie den Adressraum ausschöpft. Macht natürlich die Programmlogik nicht gerade einfacher ...
Übrigens, wenn du diese Methode mit der von Memnarch vorgeschlagenen kombinierst, könntest du noch besser wegkommen, insofern sich deine Berechnungen parallelisieren lassen. Denn: jeder einzelne Prozess hat 4 GiB Adressraum (wovon natürlich normalerweise nur 2 GiB für den UM bereitstehen). In dem Fall hast du eben nicht mehrere Threads im gleichen Prozess die an den Daten werkeln, sondern mehrere Threads in mehreren Prozessen. Damit haste dann (wie gesagt, wenn denn parallele Bearbeitung überhaupt geht) dann die Parallelisierung auch gleich abgedeckt. |
AW: scientific computing: mehr als 4 GB RAM nutzen!?
Wenn es nur um Daten geht wäre hier PAE besser, ich weiss nur nicht, wie/ob das mit Delphi funktioniert
|
AW: scientific computing: mehr als 4 GB RAM nutzen!?
Zitat:
Siehe: ![]() Zitat:
|
AW: scientific computing: mehr als 4 GB RAM nutzen!?
Die 32Bit Version von MSSQL kann damit aber mehr als 4GByte verwenden ( bei einem 64Bit OS)
|
AW: scientific computing: mehr als 4 GB RAM nutzen!?
Zitat:
Aber welche Version ist es denn, die du meinst? Kann gern mal reinschauen. Glaube aber irgendwie nicht, daß es 32bittige Prozesse sind, wenn doch schon die Anforderung 64bit-OS existiert. |
AW: scientific computing: mehr als 4 GB RAM nutzen!?
Nein, die verwendete Software (Datev) unterstützt keine 64Bit Version des SqlServers ( solange sie noch 32Bit unterstützen, wegen Testaufwand). Früher wurden mehrer Instanzen eingesetzt nun raten sie davon ab und bieten die genannte Version ein (MSSQL 2005 SE).
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz