Speicherproblem Z88F

Das Forum zu Z88OS (Open Source) / The newsgroup for Z88OS (open source)

Moderatoren: ccad, mz15, auroraIco, Lehrstuhl

Antworten
jochenmuell
Newbie
Beiträge: 5
Registriert: Do 7. Feb 2008, 15:04

Speicherproblem Z88F

Beitrag von jochenmuell »

Hallo,
ich habe eine ziemlich gro?e Superstruktur aus Hexaedern Nr.10 erstellt. Mit Hilfe des Netzgenerator erzeuge ich dann eine FE-Struktur. Diese enth?lt mehr als 40.000 Knoten.
In Z88.Dyn habe ich den Wert f?r MAXGS auf 189600000 gestellt. Bei dieser Einstellung l?uft Z88F noch. Erh?he ich den Wert weiter erscheint eine Meldung, dass nicht gen?gend dynamischer Speicher zur Verf?gung steht. Dass der PC nicht gen?gend Speicher hat halte ich f?r ausgeschlossen.
Vielleicht weiss jemand eine L?sung.

PS: Der Iterationssolver kommt f?r mich nicht in Frage, da dieser keine realistischen Werte liefert.
Zimmermann
Alumni
Beiträge: 17
Registriert: Do 20. Dez 2007, 09:21

Speicherproblem

Beitrag von Zimmermann »

Guten Tag,

anhand Ihrer Ausf?hrungen erkenne ich zwei Probleme:

1. Warum geht der Iterationssolver nicht?
2. Warum der Speicherfehler?

Nat?rlich kann ich nicht exakt sagen, woran dies liegt, ich stelle nur Vermutungen aufgrund h?ufig auftretender Fehler auf. Bitte daher die Aussagen nicht missverstehen.

zu Frage 1:

Bei derartigen Strukturen lohnt sich der Einsatz des Iterationssolvers schon. Insbesondere bei Hexaeder 20 sind die Einzelelementsteifigkeitsmatrizen schon sehr gro?. Bitte pr?fen Sie hierbei exakt (am besten mit dem Handbuch) ab:
1. Ihre Einstellungen in der Solversteuerdatei z88i4.txt. Insbesondere ist hierbei auf den Solvertyp SOR/SIC und die Steuerparameter zu achten.
2. Bitte an selbiger Stelle auch das Konvergenzkriterium zu kleineren Werten w?hlen.
3. Pr?fen Sie bitte immer, ob der L?sungsvorgang nicht durch ?berschreiten der maximalen Anzahl Iterationen erfolgte, sondern durch Unterschreiten des Konvergenzkriteriums.

zu Frage 2:

Diese Angelegenheit ist zugegeben genauso vielf?ltig hinsichtlich der Ursache. Pr?fen Sie bitte die Fragen:
1. Haben Sie 750 MByte physikalischen Speicher und mindestens soviel swap?
2. Vielleicht ein Fehler in der z88.dyn - erkennt der Filechecker diese als i.O. ?
3. Haben Sie alle Parameter der z88.dyn sorgf?ltig mit Handbuch gegengecheckt?
Entscheidend f?r die Fehlersuche ist auch die Frage, ob der Solver w?hrend der Compilation abbricht oder bereits vorher! Pr?fen Sie doch mal die Fragen, wenn's dann immer noch nicht l?uft, schreiben Sie doch bitte noch ein paar ausf?hrlichere Infos zu Ihrem Beispiel.


Mit freundlichen Gr??en

Martin Zimmermann
jochenmuell
Newbie
Beiträge: 5
Registriert: Do 7. Feb 2008, 15:04

Speicherproblem

Beitrag von jochenmuell »

Guten Tag Herr Zimmermann,

zuerst einmal vielen Dank f?r Ihre Ausf?hrungen. Nun zum Problem:

zu 1: Mit dem Iterationsolver habe ich mich noch nicht so eingehend besch?ftigt, da ich bisher immer den Cholesky-Solver verwendet habe. Werde das sp?ter versuchen.

zu 2:
1) Der PC hat 2GB Speicher und die Auslagerungsdatei eine Gr??e von 6GB.
2) Der File-Checker meldet keinen Fehler
3) Die Werte habe ich verglichen. Siehe unten.
Der Solver l?sst sich nicht mal starten, es erscheint sofort die Meldung:
"Nicht genug dynamischer Speicher! Abhilfe: Werte in Z88.DYN erh?hen"

Das Problem tritt auf sobald der Wert MAXGS in Z88.Dyn gr??er als 189603835 ist.

------------------------------------------------------------------------------------
Z88.DYN:

DYNAMIC START
---------------------------------------------------------------------------
Z88 new version 12.0 Z88 neue Version 12.0
---------------------------------------------------------------------------

---------------------------------------------------------------------------
Language Sprache
---------------------------------------------------------------------------
GERMAN

---------------------------------------------------------------------------
Entries for net generator Z88N Daten fuer Netzgenerator
---------------------------------------------------------------------------
NET START
MAXSE 20000000
MAXESS 3000
MAXKSS 30000
MAXAN 15
NET END

---------------------------------------------------------------------------
Common entries for all modules gemeinsame Daten fuer alle Module
---------------------------------------------------------------------------
COMMON START

MAXGS 189603835 max=189603835
MAXKOI 400000
MAXK 90000
MAXE 20000
MAXNFG 270000
MAXNEG 50
MAXPR 10000
MAXSOR 20000000
MAXPUF 5000000

COMMON END

---------------------------------------------------------------------------
Entries for plot program Z88P Daten fuer Plotprogramm
---------------------------------------------------------------------------
PLOT START
MFACCOMMON 2
MAXGP 50000
PLOT END

---------------------------------------------------------------------------
Entries for Cuthill-McKee Z88H Daten fuer Cuthill- McKee Programm
---------------------------------------------------------------------------

CUTKEE START
MAXGRA 200
MAXNDL 20000000
CUTKEE END

DYNAMIC END
Zimmermann
Alumni
Beiträge: 17
Registriert: Do 20. Dez 2007, 09:21

Beitrag von Zimmermann »

Guten Tag,

am Speicher des PC's, den Sie verwenden, kann dies schon liegen, der scheint zun?chst ausreichend zu sein, aber ... Das der Solver nicht einmal gestartet wird kann nur eines hei?en:
Der Proze? bekommt den dynamischen Speicher trotz einer realistischen Anforderung nicht zugewiesen. Die Ursache kann, wie bereits gesagt, vielf?ltig sein. Zwei M?glichkeiten:

1. Die wahrscheinliche:
Sie haben den zul?ssigen Adressraum ?berschritten.

2147483648 byte entspricht 2 GB.
Sie versuchen anzufordern:
0189603835x4 byte rund 0800000000 byte.
Jetzt brauchen Sie f?r Z88 noch ein wenig mehr Speicher f?r irgendwelche Felder und Zubeh?r. + Windows ben?tigt f?r sich einen Teil, den Sie gar nicht adressieren d?rfen.

2. Die unwahrscheinliche:
Ein Fehler im Rahmen der Z88.dyn-Datei. Vielleicht steckt da irgendwo ein Sonderzeichen? Was man vielleicht gar nicht sieht? Das sind alles nur Mutma?ungen aber derartiges Problem hatte ich pers?nlich schon.



Versuchen Sie zun?chst die L?sung mit den Iterationssolvern, diese ben?tigen wesentlich weniger Speicher. Die Bedienung ist sehr ?hnlich.

Martin Zimmermann
goering

Beitrag von goering »

Hallo;
Zimmermann hat geschrieben:Guten Tag,
...
2147483648 byte entspricht 2 GB.
Sie versuchen anzufordern:
0189603835x4 byte rund 0800000000 byte.
Jetzt brauchen Sie f?r Z88 noch ein wenig mehr Speicher f?r irgendwelche Felder und Zubeh?r. + Windows ben?tigt f?r sich einen Teil, den Sie gar nicht adressieren d?rfen.
...
Martin Zimmermann
Bei der Berechnung ist ein kleiner Fehler unterlaufen. Da die Eintr?ge der GS double-Werte sind muss der Wert 189603835 mit 8 byte multipliziert werden. Dadurch st??t man an die 1,5GB Grenze von Windows. Mehr Speicher l?sst sich durch 32-Bit Windows f?r eine Applikation nicht reservieren.

Vielleicht hilft hier der 3GB-Swith von Windows weiter (siehe Internet). Aber bei 2GB Hauptspeicher bringt das auch nicht viel, da, wie Herr Zimmermann schrieb, Windows ja auch einen Teil des Speichers braucht.

Sch?ne Gr??e,
JG
Zimmermann
Alumni
Beiträge: 17
Registriert: Do 20. Dez 2007, 09:21

Speicherbedarf

Beitrag von Zimmermann »

Guten Tag,

Herr G?ring hat recht.

Sie fordern damit nicht nur ca. 0800000000 byte an, sondern ca. 1600000000 byte.

Dass dann die 1,5 GB Grenze ?berschritten wird, klingt plausibel.

Vielen Dank f?r den Hinweis,

Martin Zimmermann
Zimmermann
Alumni
Beiträge: 17
Registriert: Do 20. Dez 2007, 09:21

Grenze des Adressraumes bei 32-Bit Applikationen

Beitrag von Zimmermann »

Guten Tag,

32-Bit Betriebssysteme k?nnen einem Prozess nur 4Gbyte Adressraum maximal zuweisen. Diese Speichereinschr?nkung kann durch den Speicherbedarf von FE-Strukturen ?berschritten werden.

Bei Z88 mu? beachtet werden, dass der Speicherbedarf sich aus einer Anzahl gro?er Speicherposten zusammensetzt.

Bei gr??eren Strukturen ist die Anwendung des Iterationssolvers zielf?hrend. Hier sind die kritischen Gr??en die Eintr?ge f?r MAXSOR f?r den z88i1-Prozess und MAXGS f?r den z88i2-Prozess in der Datei "z88.dyn" der Version 12 von Z88.

Martin Zimmermann
Antworten