5.0 – Rechnerarchitekturen

Flynns Klassifikation, Parallele Rechnerarchitekturen,Amdahl‘s Law

Flynns Klassifikation

Flynnsche Klassifikation (Flynn‘sche Taxonomie)

  • 1966 entwickelt, einfaches Modell, bis heute genutzt
  • Beschränkung der Beschreibung auf die Befehls- und Datenströme

Flynns Klassifikation

  • Befehlsstrom
    • Folge von Maschinenbefehlen, werden vom Leitwerk als entschlüsselte Steuerinformation an das Rechenwerk weitergeleitet
  • Datenstrom
    • Daten, die vom Rechenwerk bearbeitet werden, werden zwischen dem Speicher und den Prozessorregistern übertragen

SISD

Single Instruction Stream, Single Data Stream

simd

SIMD

Single Instruction Stream,Multiple Data Stream

simd

MISD

Multiple Instruction Stream, Single Data Stream

misd

MIMD

Multiple Instruction Stream, Multiple Data Stream

misd

5.1 – Rechnerarchitekturen

Parallele Rechnerarchitekturen

Kann die Ausführungsgeschwindigkeit eines Programms durch Erhöhung von Taktrate / FLOPS einer CPU immer weiter gesteigert werden?

Moore’s Law

The number of transistors incorporated in a chip will approximately double every 24 months. Gorden Moore

Moore Law Quelle: http://en.wikipedia.org/wiki/Moore%27s_law

Expertenmeinung

Prognose für die Entwicklung von CPUs aus dem Jahre 1998

Einführungsjahr 1999 2002 2005 2008 2011 2016
Takt/Ghz 1,25 2,1 3,5 6 10 16,9
Chipgröße/mm² 340 430 520 620 750 900
Anzahl Pins 1867 2553 3492 4776 6532 8935
Transistoren/Chip 21M 76M 200M 520M 1,4G 3,62G

Expertenmeinung

Prognose für die Entwicklung von CPUs aus dem Jahre 1998

Prognose

Expertenmeinung

Prognose für die Entwicklung von CPUs aus dem Jahre 1998

Einführungsjahr 1999 2002 2005 2008 2011 2016
Takt/Ghz 1,25 2,1 3,5 6 10 16,9
Chipgröße/mm² 340 430 520 620 750 900
Anzahl Pins 1867 2553 3492 4776 6532 8935
Transistoren/Chip 21M 76M 200M 520M 1,4G 3,62G
(✔)

Realität

ClockSpeed Quelle: http://www.maximumpc.com/article/home/history_dream_how_ultimate_pc_has_evolved_15_years

Hitzeentwicklung

Quelle: http://www.cadalyst.com/hardware/workstation-performance-tomorrow039s-possibilities-viewpoint-column-6351

Steigerung der FLOPS

Entfernungproblem

$$ r < \frac{c}{1\frac{TByte}{s}} = \frac{299.792.458 \frac{m}{s}}{10^{12} \frac{Bit}{s}} = 0,3 \frac{mm}{Bit} $$

Motivation

Durch Steigerung der Taktrate / FLOPS eines einzelnen Prozessors ist keine nennenswerte Leistungssteigerung mehr zu erreichen, ohne große Nachteile in Kauf nehmen zu müssen.

<span class=‘fragment '

Aber: Im Programm vorhandene, unabhängige Rechenpakete können zeitgleich verarbeitet werden

Shared Memory Systeme

  • Implizite Datenverteilung
  • Implizite Kommunikation
  • Es gibt verschiedene Typen von Shared-Memory Systemen
  • Programmierung mit …
    • … OpenMP
    • … Java-Threads

SMS

Shared Memory Systeme

Auf den gemeinsamen Speicher kann von allen Threads eines Programms zugegriffen werden

SMP

Symmetric Multi Processing

SMP

ccNUMA

cache-coherent Non-Uniform Memory Architecture

ccNUMA

Distributed Memory Systeme

  • Explizite Datenverteilung
  • Explizite Kommunikation
  • Gute Skalierbarkeit
  • Programmierung mit MPI

DMS

Speicherzugriff

Jeder Prozess hat seinen eigenen Speicherbereich

SMS vs. DMS

SMS DMS

5.2 – Rechnerarchitekturen

Amdahl`s Law

Speedup und Effizienz

Speedup und Effizienz sind Maßzahlen, um eine parallele Rechnung bewerten zu können

  • Zeitverbrauch bei 1 CPU: $T(1)$

  • Zeitverbrauch bei p CPUs: $T(p)$

  • Speedup: $ S(p)= \frac{T(1)}{T(p)} $

    • Gibt an, wieviel schneller die parallele Berechnung ist
    • Idealfall: $ S(p) = p $
  • Effizienz: $ E(p)= \frac{S(p)}{p} $

    • Gibt an, wie „gut“ die Implementierung der parallelen Berechnung ist
    • Idealfall: $ E(p)=1 $

Speedup und Effizienz

$$ T(1) = 6s, T(2) = 4s $$ $$ S(2) = \frac{6}{4} = 1,5 $$ $$ E(2) = \frac{1.5}{2} = 0,75 $$

Amdahl‘s Law

Beschreibt den Einfluss des seriellen Teils eines Programms auf dessen Skalierbarkeit

$$ s(p) = \frac{T(1)}{T(p)} = \frac{T(1)}{f \cdot T(1) + (1-f) \cdot \frac{T(1)}{p}} = \frac{1}{f+\frac{1-f}{p}} $$

  • $f$: serieller Teil des Programms $(0 <= f<= 1)$
  • $T(1)$: Zeitverbrauch mit 1 CPU
  • $T(p)$: Zeitverbrauch mit p CPU
  • $S(p)$: Speedup

Anmerkungen:

  • Overhead wird nicht berücksichtigt
  • Skalierbarkeit jedes Programms ist durch den seriellen Programmteil limitiert

Veranschaulichung

Wenn 80% (gemessen an der Programmlaufzeit) der Arbeit parallelisiert werden können und “nur” 20% immer seriell ausgeführt werden müssen, dann ergibt sich der Speedup wie folgt:

Amdahl‘s Law