Nachrichtenbasierte Parallelprogrammierung
Nachrichtenbasierte Parallelprogrammierung koordiniert Prozesse auf Distributed-Memory-Maschinen durch explizite Kommunikation, das dominierende Modell für großskaliges Hochleistungsrechnen.
Definition
Bei der nachrichtenbasierten Parallelprogrammierung verfügt jeder Prozess über einen eigenen privaten Speicher, und die Prozesse kooperieren ausschließlich durch das Senden und Empfangen von Nachrichten; die Message Passing Interface (MPI) ist die Standardbibliothek, die Punkt-zu-Punkt- und kollektive Kommunikationsprimitive für dieses Modell bereitstellt.
Scope
Dieses Thema behandelt das nachrichtenbasierte Paradigma für Parallelrechner mit verteiltem Speicher: Punkt-zu-Punkt-Sende-/Empfangsoperationen und deren blockierende und nicht-blockierende Varianten, kollektive Operationen (Broadcast, Scatter/Gather, Reduktion, All-to-All), Prozessgruppen und Kommunikatoren sowie den De-facto-Standard MPI. Es behandelt auch strukturierte Kostenmodelle wie das Bulk Synchronous Parallel (BSP)-Modell, die das Algorithmen-Design und die Leistungsanalyse leiten.
Core questions
- Wie werden Berechnungen über Distributed-Memory-Prozesse partitioniert, die keinen gemeinsamen Adressraum teilen?
- Wann sollten kollektive Operationen die explizite Punkt-zu-Punkt-Kommunikation ersetzen?
- Wie kann der Kommunikationsaufwand eines parallelen Algorithmus modelliert und minimiert werden?
Key theories
- Punkt-zu-Punkt- und kollektive Kommunikation
- MPI strukturiert parallele Berechnungen um explizite Nachrichten zwischen Prozessen und optimierte kollektive Muster – Broadcasts, Reduktionen und Gathers –, deren effiziente Implementierungen für skalierbare Distributed-Memory-Programme von zentraler Bedeutung sind.
- Bulk Synchronous Parallel Modell
- Das BSP-Modell strukturiert Berechnungen in Supersteps aus lokaler Berechnung, Kommunikation und Barrieresynchronisation, wodurch ein klares Kostenmodell entsteht, das das Algorithmen-Design und die Message-Passing-Hardware überbrückt.
- Kommunikationsbewusstes Algorithmen-Design
- Da die Kommunikation auf Distributed-Memory-Maschinen oft den größten Kostenfaktor darstellt, werden parallele Algorithmen so entworfen und analysiert, dass Nachrichtenvolumen und Latenz minimiert werden, wodurch ein Gleichgewicht zwischen Berechnung und Kommunikation hergestellt wird.
Clinical relevance
MPI ist das Rückgrat der wissenschaftlichen Simulation auf Supercomputern – Klimamodellierung, numerische Strömungsmechanik, Molekulardynamik – und jeder Berechnung, die über die vielen Distributed-Memory-Knoten eines Clusters skaliert werden muss.
History
Valiants BSP-Modell von 1990 lieferte eine überbrückende Abstraktion für parallele Berechnungen; das MPI Forum standardisierte die Nachrichtenübermittlung 1994, und aufeinanderfolgende MPI-Versionen sowie Referenztexte von Gropp, Snir, Dongarra und Kollegen machten es zur Lingua franca des Hochleistungsrechnens.
Key figures
- William Gropp
- Jack Dongarra
- Marc Snir
- Leslie Valiant
Related topics
Seminal works
- gropp2014
- valiant1990
- snir1998
Frequently asked questions
- Warum wird Nachrichtenübermittlung für sehr große Parallelrechner bevorzugt?
- Große Parallelrechner sind physikalisch Distributed-Memory-Systeme: Es gibt keinen einzelnen gemeinsamen Speicher, der skaliert werden könnte. Die Nachrichtenübermittlung passt direkt zu dieser Hardware und zwingt den Programmierer, die Datenlokalität explizit zu verwalten, was die Skalierung auf Tausende oder Millionen von Kernen ermöglicht.