GaspiLS – Softwarelösung für CFD- und FEM-Simulationen

Optimaler Löser für lineare Gleichungssysteme

GaspiLS ist unsere skalierbare lineare Löser-Bibliothek, die sich in Zeiten von Exascale-Computing bereits in Industrieunternehmen bewährt hat. Viele Simulationen im Ingenieurwesen basieren auf Computational Fluid Dynamics und Finite-Elemente Methoden (CFD- und FEM-Methoden), zum Beispiel die Bestimmung aerodynamischer Eigenschaften von Flugzeugen oder die Analyse von Gebäudestatik. Ein Großteil der Rechenzeit wird dabei für das Lösen der zugrundeliegenden Gleichungen durch iterative Verfahren wie die Krylov-Unterraum-Methoden benötigt. Die Leistung der benutzten iterativen Löser hat damit einen großen Einfluss auf die Gesamtlaufzeit solcher Simulationen. Um schneller Erkenntnisse aus diesen Simulationen zu gewinnen, haben wir die lineare Löser-Bibliothek GaspiLS entwickelt.

 

Industrie setzt auf GaspiLS aufgrund besserer Skalierbarkeit

Skalierbarkeit gilt bei einer Implementierung als Maß für die parallele Effizienz. Das Optimum ist die sogenannte lineare Skalierbarkeit. Dies entspricht der vollständigen Ausnutzung von Rechenressourcen, also den Kernen innerhalb einer oder mehrerer über ein Netzwerk miteinander verbundener CPUs. Eine verbesserte Skalierbarkeit ermöglicht das sinnvolle Nutzen von mehr Rechenkapazität und das führt zum schnelleren Lösen eines Problems.

In der Umsetzung ergeben sich folgende Vorteile:

  • detailliertere Modelle
  • genauere Parameter-Studien
  • kosteneffizientes Ausnutzen der Hardware-Ressourcen

Diese Aspekte machen GaspiLS besonders interessant für Industrieunternehmen, die Computer Aided Engineering (CAE) Methoden in ihrer Produktentwicklung einsetzen, um Kosten zu sparen. Hierzu zählen die Fertigungsindustrie im Allgemeinen, insbesondere aber zum Beispiel die Automobilindustrie, der Maschinenbau und die Luft- und Raumfahrt-Technik.

 

Rechenressourcen optimal nutzen 

Um gute Skalierbarkeit zu erreichen, nutzt GaspiLS die von uns entwickelten Methoden und Werkzeuge zur parallelen Programmierung. Dazu gehören die Kommunikationsbibliothek GPI-2 und deren zugrundeliegendes Programmiermodell. Der Algorithmus wird feingranular in Teilprobleme (sogenannte Tasks) mit gegenseitigen Abhängigkeiten aufgeteilt. Dies erlaubt es zu jedem Zeitpunkt ausführbare Tasks auf freie Rechenressourcen zuzuweisen und garantiert damit einen kontinuierlichen Strom an Rechenaufgaben für jede CPU.

Berechnung der Druckkorrektur
© Fraunhofer ITWM
Berechnung der Druckkorrektur in der PISO-Methode: Mit GaspiLS (grün und blau) wurden Performanz und Skalierbarkeit entscheidend verbessert gegenüber der MPI-basierten Implementierung (orange).

Wir verzichten dabei auf globale Synchronisierungspunkte und gleichen, in Kombination mit der großen Menge an erzeugten Teilproblemen, Ungleichheiten in der Rechenzeit und Latenzzeiten aus, die durch den Austausch von Daten entstehen. Jeder einzelne Kern wird zu jedem Zeitpunkt maximal ausgelastet.
 

Optimale Konvergenz für unterschiedlichste Probleme

Vorkonditionierer sind dazu ausgelegt, die Konvergenz von iterativen Krylov-Unterraum-Verfahren zu verbessern. Sie reduzieren die Anzahl der benötigten Iterationen oder ermöglichen gar erst die Lösung eines gegebenen Problems. Vorkonditionierer sind daher für GaspiLS
neben der zugrunde liegenden hoch performanten Matrix Vektor Multiplikation eine ebenso zentrale Komponente, um dünnbesetzte lineare Gleichungssysteme effizient zu lösen.

GaspiLS stellt nun zwei unterschiedliche Klassen von Black-Box-Vorkonditionieren zur Verfügung:

  1. Ein algebraisches Mehrgitter-Verfahren (AMG) für symmetrisch positiv definite Probleme, wie sie zum Beispiel in CFD-Anwendungen vorkommen
  2. Eine mehrere Ebenen umfassende unvollständige LU Zerlegung (Multi-Level-ILU) in Kombination mit unterschiedlichen Gebietszerlegungsmethoden für allgemeine Probleme

Beide Implementierungen benutzen ein skalierbares, effizientes und hybrid paralleles Gaspi-basiertes Programmiermodell.

AMG hat als Mehrgitter-Verfahren eine lineare numerische Komplexität, d.h. der Aufwand zur Lösung steigt nur proportional zu der Anzahl der zu lösenden Unbekannten. Dies ist optimal und kommt für symmetrisch positiv definite Probleme zum Einsatz. Es wird eine Hierarchie an Operatoren direkt aus der Matrix konstruiert, ohne dass dafür explizite Kenntnis der zugrundeliegenden Geometrie oder der partiellen Differential-Gleichung notwendig ist.

Multi-Level-ILU sind robust, genau und als Black-Box-Vorkonditionierer optimal für allgemeine dünn-besetzte Gleichungssysteme geeignet. ILU besteht im Wesentlichen aus einem Gauss-Eliminations-Verfahren, bei dem weniger wichtige Beiträge verworfen werden. In Abhängigkeit der verwendeten Parameter und der zur Verfügung stehenden Ressourcen, kann man mit unserer Multi-Level-ILU-Implementierung zwischen einer vollständigen Gauss-Elimination (exakte Inverse, hohe Ressourcen-Anforderung) und einem einfachen Jacobi-Vorkonditionierer (geringe Ressourcen-Anforderung, geringe Approximations-Genauigkeit) interpolieren. In Kombination mit unterschiedlichen für die Parallelisierung zur Verfügung stehende überlappende bzw. nicht-überlappende Gebietszerlegungsmethoden liefert unsere Implementierung ein umfassendes Arsenal an Methoden um unterschiedliche für das jeweilige Problem optimierte Vorkonditionierer zu implementieren. Damit lassen sich auch schlecht konditionierte Probleme optimal lösen.

Die von GaspiLS benötigte Laufzeit der Setup Phase wird als Funktion der Anzahl der benutzten Prozesse mit der neuesten Hypre Implementierung mit aktivierter Hopscotch Option für optimale hybrid parallele Performance verglichen.
© Fraunhofer ITWM
Die von GaspiLS benötigte Laufzeit der AMG Setup Phase wird als Funktion der Anzahl der benutzten Prozesse mit der neuesten Hypre Implementierung mit aktivierter Hopscotch Option für optimale hybrid parallele Performance verglichen.
MultiLevel ILU Iterationen
© Fraunhofer ITWM
Die Anzahl benötigter Iterationen zur Lösung eines komplex wertigen Helmholtz Problems in 2D, in Abhängigkeit der Anzahl der benutzten Prozesse für verschiedene Gebietszerlegungsverfahren in Kombination mit verschiedenen ILU Vorkonditionierern.

GaspiCxx für mehr Produktivität

Innerhalb von GaspiLS wurde das Verwalten von Kommunikations-Ressourcen für den GPI-2-Datenaustausch abstrahiert und mit GaspiCxx auch für andere Anwendungen zur Verfügung gestellt. GaspiCxx definiert eine einfach zu nutzende C++- Schnittstelle. Die Verwaltung von GPI-2-Kommunikations-Ressourcen wird hierbei ohne Einschränkung der zugrundeliegenden Leistungsfähigkeit komplett von GaspiCxx übernommen. Die Anwendung muss sich nicht mehr darum kümmern. Damit fällt ein Großteil der normalerweise notwendigen Implementierungsarbeiten bei der Entwicklung von GPI-2-Applikationen weg. Die Entwicklung von GPI-2-Applikationen und das Ausnutzen der damit einhergehenden Vorteile – wie die gute Skalierbarkeit – war noch nie so einfach.