Grundlagen der Parallelverarbeitung

Formen des Parallelismus

  • Nebenläufigkeit

    Eine Maschine arbeitet nebenläufig, wenn die Objekte vollständig gleichzeitig abgearbeitet werden.

  • Pipelining

    • die Bearbeitung eines Objektes in Teilschritte zerlegt
    • diese in einer sequentiellen Folge (Phasen der Pipeline) ausgeführt werden
    • Die Phasen der Pipeline können für verschiedene Objekte überlappt abgearbeitet werden

Ebenen der Parallelität

  • Programmebene

    • Parallele Verarbeitung verschiedener Programme

    • Vollständig unabhängige Einheiten

      • ohne gemeinsame Daten
      • wenig oder keine Kommunikation und Synchronisation
    • Parallelverarbeitung wird vom Betriebssystem organisiert

  • Prozessebene (Task-Ebene)

    • Programm wird in Anzahl parallel ausführbarer Prozesse zerlegt

    • Prozess:

      • schwergewichtiger Prozess (heavy-weighted process)
      • Besteht aus vielen sequentiell ausgeführten Befehlen und umfasst eigene Datenbereiche
    • Synchronisation und Kommunikation

    • Betriebssystem unterstützt Parallelverarbeitung durch Primitive zur

      Prozessverwaltung, Prozess-Synchronisation, Prozesskommunikation

  • Blockebene

    • leichtgewichtige Prozesse (Threads)
      • Bestehen jeweils aus sequentiell ausgeführten Befehlen teilen sich gemeinsamen Adressraum
      • Synchronisation über Schlossvariablen (mutex), und Bedingungsvariablen (condition variables) oder darauf aufbauenden Synchronisationsmechanismen
      • Kommunikation über gemeinsame Daten
      • Aufwand für Thread-Erzeugung und-Beendigung, Thread-Wechsel geringer 👏
    • Anweisungsblöcke
      • Innere und äußere parallele Schleifen
      • Verwendung von Microtasking
      • Hohes Parallelitätspotential durch parallel ausführbare Schleifeninterationen
  • Anweisungs- oder Befehlsebene

    • Parallele Ausführung einzelner Maschinenbefehle oder elementarer Anweisungen
    • Optimierende (parallelisierende) Compiler für VLIW-Prozessoren oder Anwendung der Superskalartechnik in superskalaren Mikroprozessoren
    • Analyse der sequentiellen Befehlsfolge
    • Umordnen und Parallelisieren der Befehle
    • Datenflusssprachen und funktionale Programmiersprachen erlauben explizite Spezifikation der Parallelität
  • Suboperationsebene

    • Elementare Anweisung wird durch Compiler oder durch die Maschine in Suboperationen aufgebrochen, die parallel ausgeführt werden

Körnigkeit der Parallelität

Körnigkeit oder Granularität (grain size)

  • ergibt sich aus dem Verhältnis von Rechenaufwand zu Kommunikations- oder Synchronisationsaufwand.
  • bemisst sich nach der Anzahl der Befehle in einer sequentiellen Befehlsfolge
  • grobkörnige (large grained) Parallelität
    • Programmebene
    • Prozessebene
    • Blockebene
  • feinkörnige (finely grained) Parallelität
    • Anweisungsebene
截屏2020-06-26 10.15.19

Previous
Next