AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE scientific computing: mehr als 4 GB RAM nutzen!?
Thema durchsuchen
Ansicht
Themen-Optionen

scientific computing: mehr als 4 GB RAM nutzen!?

Ein Thema von xcs · begonnen am 24. Jan 2011 · letzter Beitrag vom 26. Jan 2011
Antwort Antwort
Seite 1 von 2  1 2      
xcs

Registriert seit: 31. Mär 2008
14 Beiträge
 
#1

scientific computing: mehr als 4 GB RAM nutzen!?

  Alt 24. Jan 2011, 16:31
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: scientific computing: mehr als 4 GB RAM nutzen!?

  Alt 24. Jan 2011, 16:35
-Delphi XE2 soll einen 64Bit-Compiler bekommen
-FPC/Lazarus
-PAE
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#3

AW: scientific computing: mehr als 4 GB RAM nutzen!?

  Alt 24. Jan 2011, 16:42
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
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: scientific computing: mehr als 4 GB RAM nutzen!?

  Alt 24. Jan 2011, 17:34
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
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#5

AW: scientific computing: mehr als 4 GB RAM nutzen!?

  Alt 24. Jan 2011, 17:48
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.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: scientific computing: mehr als 4 GB RAM nutzen!?

  Alt 24. Jan 2011, 19:04
Wenn es nur um Daten geht wäre hier PAE besser, ich weiss nur nicht, wie/ob das mit Delphi funktioniert
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#7

AW: scientific computing: mehr als 4 GB RAM nutzen!?

  Alt 24. Jan 2011, 20:00
Wenn es nur um Daten geht wäre hier PAE besser, ich weiss nur nicht, wie/ob das mit Delphi funktioniert
Hier würfelst du scheinbar etwas durcheinander. PAE bedeutet nur, daß die CPU alles bereitstellt, damit der Kernel auch im 32bit-Adressmodus auf mehr als 4 GiB RAM zugreifen kann. Treiber müssen entsprechend darüber bescheidwissen. Anwendungen hingegen sehen nach wie vor nur 4 GiB (pro Prozeß).

Siehe: http://de.wikipedia.org/wiki/Physical_Address_Extension

Zitat:
Der in einem Prozess bzw. einem Task nutzbare Speicher ist jedoch weiterhin auf 4 GiB begrenzt, sofern man ein lineares Speichermodell („flat memory“) verwendet, da die verwendeten Adressregister nur 32 Bit breit sind.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: scientific computing: mehr als 4 GB RAM nutzen!?

  Alt 24. Jan 2011, 20:18
Die 32Bit Version von MSSQL kann damit aber mehr als 4GByte verwenden ( bei einem 64Bit OS)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#9

AW: scientific computing: mehr als 4 GB RAM nutzen!?

  Alt 24. Jan 2011, 20:26
Die 32Bit Version von MSSQL kann damit aber mehr als 4GByte verwenden ( bei einem 64Bit OS)
Ich habe keinen Bock es zu reversen, aber ich bin mir ziemlich sicher, daß dabei der angesprochene Trick mit den MMFs zur Anwendung kommt. Mehr als 4 GiB gleichzeitig innerhalb eines (32bit-)Prozesses geht nämlich einfach nicht, egal was irgendwelche Quacksalber dir verkaufen/verkauft haben ...

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.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)

Geändert von Assarbad (24. Jan 2011 um 20:28 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: scientific computing: mehr als 4 GB RAM nutzen!?

  Alt 24. Jan 2011, 20:32
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).
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz