Parallelrechnen in der Physik
Parallelrechnen teilt eine physikalische Simulation auf viele Prozessoren auf, die gleichzeitig arbeiten. Dabei ist es entscheidend, das Problem zu zerlegen, den Datenaustausch zu koordinieren und die Gesetze zu verstehen, die die Beschleunigung begrenzen.
Definition
Parallelrechnen in der Physik ist die Praxis, eine Simulation in Aufgaben zu unterteilen, die gleichzeitig auf mehreren Prozessoren oder Kernen ausgeführt werden, wobei deren Daten und Synchronisation koordiniert werden, um größere Probleme schneller als bei serieller Ausführung zu lösen.
Scope
Dieses Thema behandelt die parallele Programmierung für die Physik: Shared-Memory-Threading und Distributed-Memory-Nachrichtenübermittlung, Domänenzerlegung und Lastverteilung, Kommunikationsmuster und -overhead sowie die Skalierungsgesetze von Amdahl und Gustafson. Es wird behandelt, wie physikalische Modelle auf parallele Hardware abgebildet werden und wie die Skalierbarkeit analysiert wird.
Core questions
- Wie wird eine physikalische Simulation mit ausgeglichener Last auf Prozessoren aufgeteilt?
- Wie unterscheiden sich Shared-Memory- und Distributed-Memory-Modelle in Programmierung und Skalierung?
- Wie begrenzt der Kommunikations-Overhead die parallele Effizienz?
- Was sagen Amdahls und Gustafsons Gesetze über die erreichbare Beschleunigung aus?
Key theories
- Domänenzerlegung und Lastverteilung
- Die Simulationsdomäne wird auf Prozessoren aufgeteilt, die ihre Region berechnen und Randdaten austauschen; eine gleichmäßige Verteilung der Arbeit und minimale Kommunikation bestimmen die parallele Effizienz.
- Starke Skalierung und Amdahls Gesetz
- Für ein festes Problem begrenzt der serielle Anteil die maximale Beschleunigung, sodass das Hinzufügen von Prozessoren abnehmende Erträge liefert, eine Einschränkung, die als starke Skalierung bekannt ist und durch Amdahls Gesetz quantifiziert wird.
- Schwache Skalierung und Gustafsons Gesetz
- Wenn die Problemgröße mit der Anzahl der Prozessoren wächst, sind viel größere Beschleunigungen erreichbar, wie Gustafson beobachtete, da die parallele Arbeitslast expandiert, während der serielle Teil konstant bleibt.
Clinical relevance
Parallelrechnen ermöglicht große Molekulardynamik-, Gitterfeldtheorie-, Fluid- und astrophysikalische Simulationen, indem diese auf Cluster und Supercomputer verteilt werden, und ist eine grundlegende Fähigkeit für jede groß angelegte computergestützte Physikarbeit.
History
Das parallele wissenschaftliche Rechnen entwickelte sich von frühen Vektor- und Shared-Memory-Maschinen zu verteilten Clustern, die mit der Message-Passing-Schnittstelle programmiert wurden; Amdahls Pessimismus von 1967 bezüglich der Beschleunigung wurde durch Gustafsons Erkenntnis von 1988 ergänzt, dass die Skalierung des Problems die Berechnung verändert.
Key figures
- Gene Amdahl
- John Gustafson
- Peter Pacheco
Related topics
Seminal works
- amdahl1967
- gustafson1988
Frequently asked questions
- Was ist der Unterschied zwischen starker und schwacher Skalierung?
- Starke Skalierung hält die Problemgröße konstant und fragt, wie viel schneller mehr Prozessoren sie machen, was Amdahls Gesetz begrenzt. Schwache Skalierung vergrößert das Problem mit der Anzahl der Prozessoren, was, wie Gustafson bemerkte, es sehr großen Maschinen ermöglicht, für entsprechend große Simulationen effizient zu bleiben.
- Warum begrenzt Kommunikation die parallele Leistung?
- Prozessoren müssen Rand- und globale Daten austauschen, und diese Kommunikation nimmt Zeit in Anspruch, die nicht so schnell abnimmt wie die Berechnung, wenn mehr Prozessoren hinzugefügt werden. Daher dominiert ab einem bestimmten Punkt der Kommunikations-Overhead und die Effizienz sinkt.