Mit Virtuellen Maschinen
Prof. Dr. Stefan Bosse
Universität Koblenz - FB Informatik - FG Praktiksche Informatik
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung ::
Was unterscheidet verteilte und parallele Datenverarbeitung?
Welche Eigenschaften besitzen verteilte gegenüber parallelen Systemen?
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Performanz
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Performanz
Aber sind solche Masszahlen für uns hilfreich?
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Performanz
https://dl.acm.org/doi/pdf/10.1145/358274.358283 Weicker, R. P. (1984). Dhrystone: a synthetic systems programming benchmark. Communications of the ACM, 27(10), 1013-1030
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Performanz
Weicker, R. P. (1984)
Analyse der prozentualen Verteilung von verschiedenen Anweisungen in verschiedenen Programmiersprachen
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Performanz
Führe den Dhrystone Benchmark Test auf verschiedenen Rechnern und verschiedenen VM (und native C Version) aus. VMs: JavaScript, Python, Lua
Ergebnisse:
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Rechenzeiten
Die Laufzeit eines Programms setzt sich aus verschiedenen Anteilen zusammen, die je nach Rechnerarchitektur, Betriebssystem und Softwarearchitektur variieren können.
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Terminologie
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Verteilte vs. Parallele Systeme
Verteiltes System
Ein verteiltes System ist eine System aus lose gekoppelten Prozessoren oder Computern, die über ein Kommunikationsnetzwerk miteinander verbunden sind (Multicomputer).
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Verteilte vs. Parallele Systeme
Paralleles System
Ein paralleles System ist ein Zusammenführung von stark gekoppelten Prozessoren (Multiprozessoren)
Man unterscheidet: Mehrkern und Mehrprozessor Rechner
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Verteilte vs. Parallele Systeme
1
Taxonomie von verteilten und parallelen Systemen
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Verteilter Speicher
computing.llnl.gov
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Geteilter Speicher
Unified Memory Architecture
Non Unified Memory Architecture
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Speichermodell und Speicherarchitekturen
Das Speichermodell und die Speicherarchitektur einer Rechneranlage bestimmen wesentlich über die Performanz und Skalierbarkeit von paralleler und verteilter Datenverarbeitung!
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Speicherhierarchie
S(M)=s1(m1)→s2(m2)→..→sk(mk)
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Speicherhierarchie
Warum gibt es ein hierarchisches Speichersystem?
Je größer die Speicherkapazität eines Speichermodules ist, desto langsamer ist der Speicherzugriff. Daher unterschiedliche Ebenen mit unterschiedlichen Größen und Zugriffszeiten (Cachekonzept)
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Verteilte Systeme
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Verteilte Systeme
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Parallele Systeme
Zerlegung (Partitionierung) eines sequenziellen Algorithmus oder eines Programms in parallele Tasks (Prozesse) → Parallele Komposition
Ausführung der Prozesse parallel (nebenläufig und ggfs. konkurrierend) auf mehreren Verarbeitungseinheiten (u. A. generische programmgesteuerte Prozessoren)
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Parallele Systeme
Def. Latenz: Gesamte oder Teilbearbeitungszeit eines Datensatzes
Def. Datendurchsatz: Anzahl der verarbeiteten Datensätze pro Zeiteinheit
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Parallele Systeme
Latenz und Bandbreite sind zunächst unabhängig!
Pipelining kann die Bandbreite erhöhen (nur sinnvoll bei Datenströmen), aber nicht die Latenz!
Parallele Tasks können die Latenz verringern
Unterschied von Latenz (oben, einzelner Datensatz) zu Bandbreite (unten, Datensatzstrom)
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Parallele Systeme
Parallelität und Nebenläufigkeit
Konkurrenz
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Parallele Systeme
blog.golang.org
(Links) Zeitlich überlappende parallele Ausführung von Datenverarbeitung (Rechts) Zeitlich versetzte und synchroniserte Datenverabeitung mit geteilten Ressourcen und Konkurrenz
Stefan Bosse - VPP - Modul A Einführung in die verteilte und parallele Datenverarbeitung :: Parallele Systeme