Log-Log-Diagramme & Sättigung
Die Rechengeschwindigkeit folgte 50 Jahre lang einer exponentiellen Wachstumskurve. Auf einem log-linearen Diagramm (log Geschwindigkeit vs. lineare Zeit) erscheint dies als eine Gerade mit Steigung b = Wachstumsrate in Größenordnungen pro Jahr.
Physikalische Grenzen setzen eine horizontale Obergrenze: eine Maximalgeschwindigkeit S_max, bestimmt durch Molekülgröße, Lichtgeschwindigkeit & Wärmebeschränkungen. Wenn sich die Exponentialfunktion S_max nähert, muss das Wachstum nachlassen.
Logistische Sättigung
Ein verbreitetes Modell für Wachstum mit einer Obergrenze:
S(t) = S_max / (1 + e^(−r(t − t₀)))
Dies ist die logistische Gleichung angewandt auf Technologie. Zu frühen Zeiten (t << t₀): S(t) ≈ S_max × e^(r(t−t₀)) — rein exponentiell. In der Nähe der Obergrenze (t >> t₀): S(t) → S_max asymptotisch.
Die Geometrie: Eine Gerade in log-linearen Koordinaten biegt sich in der Nähe der Obergrenze und erzeugt eine S-Form in linear-linearen Koordinaten.
Wann sättigt das Wachstum?
Angenommen, die Einzelprozessorgeschwindigkeit wächst mit 10^(0.09t) beginnend von 10⁰ Operationen/Sek im Jahr 1940. Physikalische Obergrenze: S_max = 10^(12) Operationen/Sek (eine grobe Schätzung für einen Einkernprozessor, begrenzt durch thermische & Lichtgeschwindigkeitsbeschränkungen).
Maximaler Kommunikationsradius
Die Taktfrequenz eines Prozessors bestimmt den maximalen Radius, innerhalb dessen er in einem Taktzyklus kommunizieren kann. Signale reisen mit ungefähr 2×10⁸ m/s in Kupfer.
Für eine Taktperiode T (in Sekunden), der maximale Einwegkommunikationsradius:
r_max = v × T / 2
(teile durch 2 für Hin- und Rückweg: Signal muss innerhalb von T ausgehen und zurückkehren)
Mit steigender Taktfrequenz nimmt T ab, also schrumpft r_max. Diese geometrische Einschränkung zwingt Komponenten, sich näher zusammenzuschließen — reduziert die Chipfläche — oder mehrere Taktzyklen Latenz für Off-Chip-Kommunikation zu akzeptieren.
Die Einflusssphäre
Alle Komponenten, die innerhalb eines Taktzyklus erreichbar sind, bilden eine Kugel mit Radius r_max, zentriert auf dem Prozessor. Volumen: V = (4/3)π r_max³.
Wenn die Komponentendichte ρ (Komponenten/m³) ist, beträgt die Anzahl der innerhalb eines Zyklus erreichbaren Komponenten: N = ρ × V = ρ × (4/3)π r_max³.
Wenn r_max mit steigender Taktfrequenz schrumpft, schrumpft N kubisch — eine 2×-Taktfrequenzerhöhung verringert die erreichbare Komponentenanzahl um (1/2)³ = 1/8.
Erreichbare Komponenten pro Taktzyklus
Eine Workstation aus dem Jahr 1993 läuft mit 100 MHz (T = 10 ns). Signalgeschwindigkeit = 2×10⁸ m/s. Komponentendichte auf einer Leiterplatte ≈ 10⁸ Komponenten/m³ (grobe Schätzung einschließlich Chips, Widerstände, Kondensatoren).
Eine moderne GPU läuft mit 2 GHz (T = 0,5 ns).
Die Grenze der parallelen Beschleunigung
Die Einzelprozessorgeschwindigkeit nähert sich physikalischen Obergrenzen. Die Antwort der Industrie: parallele Architekturen. Amdahls Gesetz quantifiziert die durch Parallelität erreichbare Beschleunigung.
Amdahls Gesetz
Angenommen, ein Anteil f eines Programms kann parallelisiert werden, und der Anteil (1−f) muss seriell ausgeführt werden. Mit p Prozessoren:
Speedup(p) = 1 / ((1−f) + f/p)
Für p → ∞: Speedup_max = 1 / (1−f)
Der serielle Anteil (1−f) setzt eine harte Obergrenze für die erreichbare Beschleunigung, unabhängig davon, wie viele Prozessoren hinzugefügt werden.
Geometrische Erkenntnis: Die Beschleunigung als Funktion von p folgt einer hyperbolischen Kurve. Die Asymptote ist 1/(1−f). Für f = 0,9, maximale Beschleunigung = 10, auch mit unendlich vielen Prozessoren. Für f = 0,99, maximale Beschleunigung = 100.
Hammings implizite Lektion: Das Interesse an parallelen Architekturen war real, aber der Nutzen hing vollständig davon ab, wie parallelisierbar die Arbeitslast war — eine Tatsache, die viele Parallelrechnungs-Optimisten ignorierten.
Berechnung der parallelen Beschleunigung
Eine wissenschaftliche Simulation läuft auf einem Prozessor 1000 Sekunden. Profiling ergibt: 200 Sekunden in einer seriellen Initialisierungsphase (nicht parallelisierbar); 800 Sekunden in einer parallelen Berechnungsphase.