Hybrides Parallelrechnen in CMPS

Hybrid Parallel Computing in CMPS

Hybride parallele Rechen- und HPC-Methoden im CMPS-Solver: Verteilter Speicher, gemeinsamer Speicher, hybride und GPU-basierte Datenverarbeitung 

CFD-Solver (Computational Fluid Dynamics) helfen uns, komplexe Strömungsphänomene in der Ingenieurwissenschaft und der wissenschaftlichen Forschung zu verstehen und zu simulieren. Der CMPS-CFD-Solver bietet mit seinen physikbasierten Modellierungs- und Parallelrechneransätzen eine effektive Lösung in diesem Bereich.

Skalierbarkeitsherausforderungen in der CFD 

CFD-Simulationen erfordern eine präzise räumliche und zeitliche Auflösung, was häufig einen erhöhten Bedarf an Rechenressourcen zur Folge hat. Die Fähigkeit eines Solvers, eine steigende Anzahl von Prozessoren effizient zu nutzen – hohe Skalierbarkeit – ist entscheidend für die Lösung komplexer Probleme. CMPS trägt diesem Bedarf durch seine Optimierung für Parallelisierungsstrategien und HPC-Umgebungen Rechnung.

Gebietszerlegung in CMPS

Paralleles Rechnen in CMPS 

CMPS ist für die Kompatibilität mit verschiedenen Plattformen konzipiert, darunter aktuelle Supercomputer-Cluster, Desktop-Systeme, Shared-Memory-Systeme und Mehrkernarchitekturen. Es lässt sich zudem effektiv in Hochgeschwindigkeitsnetzwerke wie InfiniBand und Myrinet integrieren. Während der Entwicklung wurden sowohl Cluster-Systeme als auch Shared-Memory-Architekturen unterstützt.

Verteilte Architektur

Methoden für verteilten Speicher in CMPS 

Die Kombination mehrerer CPU-Kerne in einem System mit gemeinsamem Speicher kann eine Herausforderung darstellen. Daher verwenden moderne Supercomputer eine Strategie mit verteiltem Speicher: Mehrere Computerknoten sind miteinander verbunden und über Hochgeschwindigkeitsnetzwerke vernetzt. In heutigen Supercomputern gilt Folgendes:

Das Starten eines verteilten Solvers in CMPS ist unkompliziert. Benutzer können die Knotennamen einfach über die grafische Benutzeroberfläche eingeben. CMPS gleicht diese Knoten aus und überträgt automatisch die für die Berechnungen notwendigen Daten an jeden Knoten. Dieser Vorgang wird als Gebietszerlegung bezeichnet.

CMPS verwendet Algorithmen zur Gebietszerlegung und parallele Lösungsstrategien, um eine effiziente Berechnung zu gewährleisten.

Hybride parallele und Shared-Memory-Methoden in CMPS 

Gemeinsam genutzte Speichersysteme ermöglichen es mehreren Prozessoren, einen gemeinsamen Speicherpool zu nutzen, was den Datenzugriff und die Kommunikation zwischen den Prozessoren beschleunigt. Allerdings können Mechanismen wie Sperren oder Barrieren erforderlich sein, um zu verhindern, dass Prozessoren auf dieselben Daten zugreifen oder diese ändern.

Lösungsalgorithmus

Methode des gemeinsamen Speichers

MPI-basierte Modelle benötigen im Vergleich zu Systemen mit gemeinsamem Speicher weniger Synchronisierung und reduzieren Fehler bei der Datenübertragung, wodurch sie eine zuverlässigere Lösung in komplexen Systemen bieten.

CMPS verfolgt einen hybriden Ansatz. Dieser Ansatz ermöglicht eine effektive Kommunikation innerhalb eines gemeinsamen Speichersystems und verbindet gleichzeitig physische Maschinen über Hochgeschwindigkeitsnetzwerke. Dadurch werden sowohl Skalierbarkeit als auch Leistungsverbesserungen gewährleistet.

MPI-Pufferoptimierung in CMPS 

Bei der Kommunikation nicht-basischer Datentypen mit MPI müssen die Daten im Pufferspeicher zwischengespeichert werden, was eine zusätzliche Belastung für den empfangenden Knoten darstellt. CMPS optimiert diesen Prozess, indem es die Pufferspeicherzuweisungen persistent macht und wiederkehrende Operationen minimiert. Dies beschleunigt die Datenübertragung und verbessert die Gesamtleistung.

GPU-Computing 

Die GPU-Berechnung (Grafikprozessoreinheit) wird im CMPS-Solver experimentell für bestimmte Matrixlöserprozesse und rechenintensive Operationen eingesetzt, ist aber in der ersten Version noch nicht verfügbar. Dank ihrer zahlreichen parallelen Kerne können GPUs rechenintensive Aufgaben schneller als CPUs ausführen. Durch die Nutzung von GPUs erreicht der CMPS-Solver Folgendes:

Durch die GPU-Optimierung verkürzt CMPS die Rechenzeiten für großskalige Probleme und verbessert gleichzeitig die Energieeffizienz.