Parallelising Molecular Dynamics for Message Passing Systems (complete) Martin Gerber
Molekulardynamik-Simulation Schrödinger Gleichung (quantenmechanisch) »Born-Oppenheimer Physikalische Modelle: »Van der Waals Dispersion, Coulomb-Kraft »Klassische Newton‘sche Bewegungsgleichungen »Lennard-Jones Paarpotential Charge Groups Konzept Wechselwirkungspotential von flüssigem Argon: l 2 Atome: l effektives Paarpotential:
Parallel Computing Aimed at Quantum and Classical Dynamical Molecular Simulation ETH Projekt , 830kFr. Partner »Leitung: IGC (Institut für Informatikgestützte Chemie, W.F. van Gunsteren) »IWR (Institut für Wissenschaftliches Rechnen, W. Gander) »IFE (Institut für Elektronik, G. Tröster) »TIK (Institut für Technische Informatik und Kommunikationsnetze, L. Thiele)
Inhalt MD-Algorithmen Exploration Codegenerierung Validierung Entwurf Spezifikation
kubische Randbedingungen II
Load Balancing 20 Knoten: gleich gut für kubische Box, oktaedrische Box: momentan nicht rechenbar auf 20 Knoten (Boxgrösse zu klein)
Inhalt MD-Algorithmen Exploration Codegenerierung Validierung Entwurf Spezifikation
Inhalt MD-Algorithmen Exploration Codegenerierung Validierung Entwurf Spezifikation
Exploration Analyse Systemsynthese: Heterogene Hardware/Software Systeme »Applikation eines Evolutionären Algorithmus (EA) Neue Analytische Modelle »für parallele Architekturen »für datenparallele Algorithmen »Ziel: Schätzungen (Performanz, Skalierbarkeit) è Paralleles Zielsystem (Hardware & Software)
Systemsynthese mit EA Super- Architektur Algorithmus Mappings f1: v1,v3 f2: v1,v2... KostenZeit Synthese Ablaufplan Architektur Bindung
Exploration mit System-Synthese Synthese automatisiert: »Allokation, Bindung, Ablaufplanung Nur zwei Optimierungskriterien: »Ausführungszeit, Kosten. MD Algorithmus: »Allokation und Bindung offensichtlich »Datenparallelität »Exploration für versch. molekulare Systeme è ungeeignet für MD Algorithmen
Synthese–Tool
Abhängigkeits-, Architektur- und Spezifikationsgraph
Ganttcharts
Inhalt MD-Algorithmen Exploration Codegenerierung Validierung Entwurf Spezifikation
Gromos96 SW Struktur viele Versionen derselben Funktion: »aufwendig im Unterhalt informale Spezifikation der Zielarchitektur FORTRAN: »globale Variablen (common blocks) »SMP: wie parallelisieren? Algorithmische Funktionen Mehrere Versionen für verschiedene Architekturen
Neue Programmierumgebung Trennung von Algorithmus und Zielarchitektur generische Funktionen für alle Architekturen paralleler Prototyp: »komplex »viele Abhängigkeiten im Code »sehr anfällig auf Programmierfehler è Automatisieren
Bindung
Inhalt MD-Algorithmen Exploration Codegenerierung Validierung Entwurf Spezifikation
Handcodierte Versionen asynchrone Datenkommunikation Wie implementieren? »Synchronisation: Wann? Wo? So wenig wie möglich? »Broadcast oder Punkt-zu-Punkt? mpi_reduce? Zum Beispiel so: »Punkt-zu-Punkt Datenverteilung, asynchron »Barrier Synchronisation optional »Daten sammeln mit mpi_reduce (Kommunikation + Addition) Alternativ »Broadcast Datenverteilung, asynchron »Punkt-zu-Punkt zum Daten sammeln
Generierte Version Datenkommunikation synchron Daten sammeln mit mpi_reduce Performanz/Skalierbarkeit identisch zu handcoierter synchron-Version
Speed-up
Barrier Synchronisation auf Workstation Cluster Daten asynchron, ohne Barrier pax: ohne Barrier psx: mit Barrier
Zusammenfassung