Bei der Entwicklung von CMPS war unser Hauptziel, CFD-Analysen (Computational Fluid Dynamics) so zugänglich und flexibel wie möglich zu gestalten. Die Kommunikation zwischen der grafischen Benutzeroberfläche (GUI) und dem Solver spielt dabei eine entscheidende Rolle. Die nahtlose und schnelle Übertragung benutzerdefinierter Parameter an den Solver sowie die aussagekräftige und sofortige Anzeige der Solver-Ergebnisse auf der GUI verbessern die Benutzerfreundlichkeit erheblich.
Kommunikationsarchitektur in CMPS
Für die Kommunikationsarchitektur in CMPS wurden asynchrone Nachrichten- und Datenübertragungsmethoden implementiert. Um die Arbeitslast zwischen Solver und GUI zu reduzieren, laufen diese beiden Komponenten auf separaten Prozessoren und kommunizieren über Nachrichtenwarteschlangen. Diese Architektur gewährleistet, dass Benutzer den Analyseprozess kontinuierlich und ohne Verzögerungen oder Einfrieren der Benutzeroberfläche überwachen können. Die Daten des Solvers werden interaktiv und in Echtzeit auf der GUI dargestellt, unter anderem mit Konturdiagrammen und Strömungslinien.
Zusammenfassung der Architektur
Diese Architektur lässt sich wie folgt zusammenfassen:
-
Kommunikation über drei Prozessgruppen hinweg:
Die grafische Benutzeroberfläche kann mehrere Simulationen (sogenannte „Cortexe“) verwalten und Daten zwischen ihnen austauschen. Beispielsweise kann eine Simulation auf Ihrem lokalen Rechner laufen, während eine andere auf einem entfernten Parallelrechner ausgeführt wird.
-
Netzwerkunabhängiger Betrieb:
Diese drei Prozessgruppen können über jedes beliebige Netzwerk ausgeführt werden. Beispielsweise könnte die grafische Benutzeroberfläche auf einem Desktop-PC zu Hause laufen, der Cortex auf einem entfernten Server und die Rechenknoten auf einem Clustersystem.
-
Kompatibilität mit allen Cluster- und Cloud-Computing-Methoden:
Die Architektur ist so konzipiert, dass sie nahtlos mit verschiedenen Cluster- und Cloud-Computing-Ansätzen zusammenarbeitet.
Echtzeit-Datenverarbeitung
Ist Datenverarbeitung in Echtzeit möglich?
Mit der entsprechenden Hardware haben wir dies auf Softwareebene realisiert. Dazu müssen Millionen von Datenpunkten von den Rechenknoten an die grafische Benutzeroberfläche (GUI) und die Nachbearbeitungseinheiten übertragen werden. Aktuell werden nahezu alle bekannten schnellsten Methoden von MPI-Bibliotheken (Message Passing Interface) unterstützt. Daher wird MPI nach Möglichkeit im Hintergrund verwendet. In anderen Fällen greift das System auf optimierte Kommunikationsprotokolle zurück. Zum Beispiel:
-
Sofern Hardware wie InfiniBand verfügbar ist, wird diese automatisch verwendet.
-
In anderen Szenarien werden die schnellsten TCP-Protokolle ausgewählt.
-
Gegebenenfalls können auch DMA (Direct Memory Access) und gemeinsam genutzter Speicher verwendet werden.
Herausforderungen
Die rechenintensiven Operationen des Solvers mussten ausgeführt werden, ohne die Stabilität der Benutzeroberfläche zu beeinträchtigen. Um dies zu erreichen, integrierten wir Multithreading-Verfahren und asynchrone Datenübertragung. Dadurch wurde eine reibungslose Benutzererfahrung gewährleistet, die es den Anwendern ermöglicht, verschiedene Phasen der CFD-Analysen nahtlos zu verfolgen.