Flynnsche Klassifikation (Flynn‘sche Taxonomie)
Single Instruction Stream, Single Data Stream
Single Instruction Stream,Multiple Data Stream
Multiple Instruction Stream, Single Data Stream
Multiple Instruction Stream, Multiple Data Stream
Kann die Ausführungsgeschwindigkeit eines Programms durch Erhöhung von Taktrate / FLOPS einer CPU immer weiter gesteigert werden?
The number of transistors incorporated in a chip will approximately double every 24 months. Gorden Moore
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 |
Prognose für die Entwicklung von CPUs aus dem Jahre 1998
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 |
✔ | ✔ | ✔ | (✔) | ✘ | ✘ |
Quelle: http://www.maximumpc.com/article/home/history_dream_how_ultimate_pc_has_evolved_15_years
$$ r < \frac{c}{1\frac{TByte}{s}} = \frac{299.792.458 \frac{m}{s}}{10^{12} \frac{Bit}{s}} = 0,3 \frac{mm}{Bit} $$
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
Auf den gemeinsamen Speicher kann von allen Threads eines Programms zugegriffen werden
Symmetric Multi Processing
cache-coherent Non-Uniform Memory Architecture
Jeder Prozess hat seinen eigenen Speicherbereich
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)} $
$ S(p) = p $
Effizienz: $ E(p)= \frac{S(p)}{p} $
$ E(p)=1 $
$$ T(1) = 6s, T(2) = 4s $$
$$ S(2) = \frac{6}{4} = 1,5 $$
$$ E(2) = \frac{1.5}{2} = 0,75 $$
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)$
: SpeedupWenn 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: