Verteilte und Parallele Programmierung

PD Stefan Bosse
Universität Bremen, FB Mathematik & Informatik
SS 2020
Version 2020-04-30

Einführung in die verteilte und parallele Datenverarbeitung


Verteilte vs. Parallele Systeme

Verteiltes System

Ein verteiltes System ist eine Sammlung von lose gekoppelten Prozessoren oder Computern, die über ein Kommunikationsnetzwerk miteinander verbunden sind (Multicomputer).

  • Speichermodell: Verteilter Speicher Jeder Prozessor verfügt über privaten Speicher
  • Kommunikation: Nachrichtenbasiert über Netzwerke
  • Ressourcen: Nicht direkt geteilt
Paralleles System

Ein paralleles System ist eine Sammlung von stark gekoppelten Prozessoren (Multiprozessoren)

  • Speichermodell: Gemeinsamer Speicher
  • Kommunikation: Direkt über elektrische Signale Switched Network (Kreuzschiene) | Bus Punkt-zu-Punkt | Punkt-zu-N-Netzwerke
  • Ressourcen: Gemeinsam genutzt (Bus, Speicher, IO)

Verteilte vs. Parallele Systeme

figdspa


Abb. 1. Taxonomie von verteilten und parallelen Systemen [1]

Verteilte vs. Parallele Systeme

Verteilter Speicher

  • Zugriff auf Speicher erfordert Netzwerkkommunikation
  • Vorteil: Speicher ist skalierbar mit Anzahl der Prozessoren
  • Nachteil: Langsamer Speicherzugriff zwischen Prozessen


figdismem

Unified Memory Architecture

  • Symmetrisches Multiprocessing (SMP)
  • Vorteil: Konstante Zugriffszeit auf Speicher
  • Vorteil: Schneller Speicherzugriff zwischen Prozessen

figuma

Non Unified Memory Architecture

  • Vorteil: Clustering von SMPs
  • Nachteil: Ungleiche Zugriffszeiten auf Speicher





fignuma[computing.llnl.gov]

Verteilte Systeme

  • Historisch basierend auf Netzwerk-Betriebssystemen (z. B. Linux-Clustern): Benutzer sind sich der Vielzahl von Maschinen bewusst!

    • Tools: Remote Login (telnet, ssh), Remote Desktop (Windows), Dateitransfer (FTP, SSH), Netzwerk Dateisystem (NFS)
  • Ein Verteiltes Betriebssystem verbirgt die einzelnen Maschinen: Benutzer sind sich der Vielzahl von Maschinen nicht bewusst!

    • Zugriff auf entfernte Ressourcen ähnlich wie der Zugriff auf lokale
    • Übertragung von Prozessen (Berechnung) und Programmcode (anstatt Daten)

fignetos[Tanenbaum]

Verteilte Systeme

Geschichte der Verteilten Betriebssysteme (DOS)