Liebe/-r Experte/-in,
beruflich beschäftige ich mich mit dem Einsatz von
Blechumformung im Karosseriebau.
Das verwendete System rechnet zur Zeit auf einem CPU-Core und
zeigt damit reproduzierbare Ergebnisse. Das bedeutet, wenn die
Simulation (gleiches Inputdeck) heute gestartet wird und
morgen wieder, so sind die Ergebnisse (inkl. Outputfiles)
identisch.
Wird jedoch die Berechnung parallel auf mehreren CPU-Cores
durchgeführt, so streuen die Ergebnisse erheblich.
Meines Wissens handelt es sich in dem Programmsystem um die
Verwendung von OpenMP (Shared-Memory-Umgebung) unter Einsatz
der Pardiso-Bibliotheken.
Fragen:
- Ist die Streuung der Ergebnisse prinzipbedingt, d.h. bei
Einsatz von OpenMP und Pardiso in FEM-Systemen nicht zu
verhindern?
Zu dieser Frage kann ich leider keine Antwort geben
- Zeigen andere FEM-Systeme ein ähnliches Verhalten?
Mir ist ein solches Verhalten auch aus anderen FE-Codes bekannt. U.a. gabe es einmal auf einer VDI-Tagung einen Vortrag, in dem ein Zusammenhang zwischen der Nichtlinearität physikalischer Systeme mit der numerischen Nichtlinearität der Parallelisierung unterschiedlicher Rechnerstrukturen bei Crashsimulationen (Nichtlinearer FE-Code) dargestellt wurde. Sprich: Rechne ich auf unterschiedlichen Clustern, bekomme ich unterschiedliche Ergebnisse. Ein Vergleich der Ergebnisse deutet aber auf die physikalische potentiell instabilen Bereiche im Modell hin. Man konnte so die Schwachstellen im System erkennen und die Strukturen auch gegen kleine Laststreuungen stabiler machen.
- Gibt es technische Möglichkeiten, dieses Rauschen zu
vermeiden, denn bei Single-Core-Jobs tritt es nicht auf?
Mir ist von dem expliziten FE-Code PAM-CRASH bekannt, dass eine Option verwendet werden kann, dass die Parallelisierung des Modells jeweils auf EINER Rechnerstruktur immer gleich verläuft. Somit sind auch die Ergebnisse jeweils identisch. D.h. ich deute, der Solver hat mehr Einfluss auf die Streuung als OpenMP oder Pardiso.
- Was gäbe es auch Sicht des Anwenders Möglichkeiten, den
Rechenzeitvorteil durch Multi-Core-Jobs zu nutzen und trotzdem
vergeleichbare, reproduzierbare Ergebnisse zu erziehen?
Mit der o.g. Option, bzw. allgemein gesagt, einem auf Mulit-Core-Rechnungen optimierten Solver, wird der Vorteil einer Parallelisierung linear in der Rechenzeit ersichtlich ( leider nicht immer 1:1).
Aber:
Hier stellt sich auch die Frage : Will ich überhaupt reproduzierbare, absolut identische Ergebnisse ? Vielmehr ist es doch wichtig, dass ich eine stabile, abgesicherte Lösung einer Struktur oder eines Bauteils erhalte, die (mögliche) Grenzwerte sicher erfüllt. Bringt man eine Lösung ein, die knapp grenzwertig i.O. ist und wird diese umgesetzt kann die Streuung in Versuch oder Produktion immer noch zum Versagen/n.i.O.-Ergebnis führen. Dann hat die Simulation nicht ihre Aufgaben gemacht.
Vielen Dank für Ihre Bemühungen im
Voraus.
Mit freundlichem Gruß
A. Schmidt