Geschwindigkeitsvergleich Z88

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

Moderatoren: ccad, mz15, auroraIco, Lehrstuhl

Antworten
Z88User
Newbie
Beiträge: 4
Registriert: Di 19. Nov 2013, 08:09

Geschwindigkeitsvergleich Z88

Beitrag von Z88User »

Hallo Z88 Team,
zunächst möchte ich Ihnen für das Programm gratulieren und auch danken. Nach einer kurzen Einarbeitungszeit ist es recht einfach zu bedienen und lässt sich sehr gut parametrisieren…

Zum Problem:
Ich möchte eine Struktur mit 18.000 Hex 10 Elementen (=84851 Knoten) berechnen (Windows 7 mit 64 Bit).
Dafür braucht das Programm im Vergleich zu einem kommerziellen Programm recht lange.

Insgesamt setzt sich die Bearbeitungszeit folgendermaßen zusammen:

SICCG Solver:
Compliation: ca. 65s
Einarbeiten der Randbedingungen: ca. 310s (2783 Einspannungen + 3600 Flächenlasten)
Lösen der Gleichungen: ca. 145s (212 Iterationen)
Berechnung der Spannungen: ca. 60s
Gesamtzeit: 580 Sekunden


SORCG Solver:
Compliation: ca. 65s
Einarbeiten der Randbedingungen: ca. 10s (2783 Einspannungen + 3600 Flächenlasten)
Lösen der Gleichungen: ca. 270s (420 Iterationen)
Berechnung der Spannungen: ca. 60s
Gesamtzeit: 405

Die Größe des Gleichungssystems beträgt in beiden Fällen 254553x254553.

Das kommerzielle Programm benötigt komplett nur 30 Sekunden, bei der gleichen Anzahl an Elementen und Knoten…

Haben Sie eine Idee, wie die großen Geschwindigkeitsunterschiede (Faktor 13 bis 19) zu erklären sind, kann dies auch an den Eingabedateien liegen?
Stutzig macht mich auch der große Zeitunterschied beim Einarbeiten der Randbedingungen.

Schöne Grüße…
Benutzeravatar
wehmann
Alumni
Beiträge: 60
Registriert: Fr 20. Nov 2009, 07:28

Re: Geschwindigkeitsvergleich Z88

Beitrag von wehmann »

Sehr geehrter Z88-User,

die Unterschiede sind darauf zurückzuführen, dass die Z88-Berechnung mit einem iterativen Solver länger dauert als mit einem direkten, die Randbedingungen anders eingebaut werden und evtl. das kommerzielle Programm automatisch mehrere Kerne anzieht. Falls Sie nicht auf die Quellen angewiesen sind, könnten Sie von Z88 V14OS auf Z88Aurora V2 umsteigen - dort finden Sie einen direkten Sparse-Solver (PARDISO), die Randbedingungen werden beschleunigt eingebaut und Sie haben auch die Möglichkeit der Parallelisierung.

Mit freundlichen Grüßen

Christoph Wehmann
Z88User
Newbie
Beiträge: 4
Registriert: Di 19. Nov 2013, 08:09

Re: Geschwindigkeitsvergleich Z88

Beitrag von Z88User »

Sehr geehrter Herr Wehmann,
vielen Dank für Ihre Antwort. Ich habe mein Testmodell versuchsweise mit Aurora V2 berechnet und wirklich eine deutliche Verbesserung festgestellt.
Folgende Zeiten konnte ich messen:
SICCG: 210s
SORCG: 145s
PARADISO: 100s

Wenn ich jetzt allerdings versuche die Strukturdatendatei (Z88i1.txt) meines eigentlichen Modells in Aurora zu importieren, kommt die Fehlermeldung „Nur gleiche Elemente erlaubt“.
Das Problem liegt wahrscheinlich darin, dass ich neben den Hexaedern Nr. 10 gleichzeitig ein paar Federn als Stabelement Typ. 4 verwende.
Gibt es einen Trick, damit ich die Elemente miteinander kombinieren kann?

Schöne Grüße…
Benutzeravatar
SHautsch
Alumni
Beiträge: 380
Registriert: Mo 15. Apr 2013, 11:03

Re: Geschwindigkeitsvergleich Z88

Beitrag von SHautsch »

Sehr geehrter Z88User,

leider ist es aktuell in Z88Aurora V2 nicht möglich, verschiedene Elementtypen miteinander zu kombinieren. Der Solver kann solche Strukturen bearbeiten, jedoch die GUI diese nicht verarbeiten. Eventuell wird das in einer der kommenden Versionen behoben, doch bis dahin müssten Sie auf die OS-Version ausweichen oder Ihr Modell entsprechend vereinfachen.

Alternativ können Sie selbst den Z88R-S getrennt ausführen.
Dann aus dem Z88Aurora-Verzeichnis folgende Dateien in Ihr Projektverzeichnis kopieren:
z88.dyn
z88rs.exe
libiomp5md.dll
Dann die z88rs.exe starten und - sofern alle Eingabedateien vorliegen - sollte der Solver die Struktur berechnen.

Mit freundlichen Grüßen
S. Hautsch
Z88User
Newbie
Beiträge: 4
Registriert: Di 19. Nov 2013, 08:09

Re: Geschwindigkeitsvergleich Z88

Beitrag von Z88User »

Sehr geehrter Herr Hautsch,
da ich die grafische Ausgabe von Aurora nicht unbedingt benötige (obwohl ich sie ziemlich gut finde),
habe ich versucht mein Modell mit dem Aurora Solver-Modul zu rechnen. Dazu habe ich die angegebenen Dateien in mein Arbeitsverzeichnis kopiert und zunächst die Datei Z88r.dyn mit dem Solver-Aufruf: z88rs -t –parao erzeugt.

Wenn ich anschließend versuche die Rechnung zu starten (z88rs -t –parao), erscheint folgende Fehlermeldung:
Pointer IEX hat zuwenig Speicher ..Stop
Abhilfe: MAXIEZ höher setzen in Z88.DYN

Der Fehler verschwindet, wenn ich jetzt manuell in Z88R.dyn den Wert MAXIES von 19974085 auf min. 19974142 erhöhe.

Allerdings wird der Solver nach dem hochzählen der Elemente von Windows beendet.
Diesen Fehler kann ich ebenfalls beheben, indem ich MAXGS auf den gleichen Wert wie MAXIES setze.

Wodurch wird dieser Fehler ausgelöst?
Gibt es einen besseren Weg, als die beiden Werte händisch in der Z88r.dyn zu ändern?

Zudem rechnet der Solver nach einem Aufruf über cmd nur mit einem Prozessor. Wie kann ich die Rechnung auf mehreren Kernen laufen lassen.

Mit freundlichen Grüßen…
Benutzeravatar
SHautsch
Alumni
Beiträge: 380
Registriert: Mo 15. Apr 2013, 11:03

Re: Geschwindigkeitsvergleich Z88

Beitrag von SHautsch »

Sehr geehrter Z88User,

das ist jetzt aus der Ferne schwer zu beurteilen. Normalerweise sollte der Testmodus ja die passende Z88R.dyn ausfüllen. Die besagte Fehlermeldung mit Z88.dyn ist quasi ein Schreibfehler, die richtige Datei ist die Z88R.dyn.
Möglicherweise stimmt die Struktur der Eingabedaten nicht 100%ig, da einige Unterschiede zwischen den Z88V14OS- und Z88Aurora-Dateistrukturen bestehen. Könnten Sie uns ihr Projektverzeichnis bzw. Ihre Eingabedaten zur Verfügung stellen, so dass wir das bei uns hier nachvollziehen könnten? Entweder als Anhang ins Forum oder per Mail an unsere Supportadresse: z88aurora@uni-bayreuth.de

Vielen Dank und viele Grüße,
S. Hautsch
Z88User
Newbie
Beiträge: 4
Registriert: Di 19. Nov 2013, 08:09

Re: Geschwindigkeitsvergleich Z88

Beitrag von Z88User »

Sehr geehrter Herr Hautsch,
vielen Dank für Ihr Angebot.
Inzwischen habe ich den Fehler gefunden:
Ich habe eine mit Z88N erzeugte Hex10 Struktur mit ein paar Stabelementen vom Typ 4 erweitert, dabei allerdings vergessen die Anzahl der Freiheitsgrade mit anzupassen…
Z88v14OS war meinem Fehler gegenüber wohl etwas toleranter.

Können Sie mir aber noch einen Tipp geben, wie ich mit Z88RS über cmd auch mehr als ein CPU-Kern nutzen kann?

Schönen Grüße…
mifris
Alumni
Beiträge: 153
Registriert: Mo 27. Sep 2010, 20:41

Re: Geschwindigkeitsvergleich Z88

Beitrag von mifris »

Hallo Z88User,

um die Anzahl der CPUs zu verändern, müssen Sie in der Datei z88man.txt "ICORE" verändern. Dies gilt aber nur für die rechnung über die Konsole. Würde Sie mit Z88Aurora rechnen wollen, dann können Sie die Anzahl entweder über die z88control.txt oder die z88enviro.dyn ändern. :)

Viele Grüße,
M. Frisch
Antworten