Log-Log-Diagramme & Sättigung
Die Rechgeschwindigkeit folgte einer exponentiellen Wachstumskurve für 50 Jahre. In einem Log-Lineardiagramm (log-Geschwindigkeit vs lineare Zeit) erscheint dies als gerade Linie mit der Neigung b = Wachstumsrate in Potenzen pro Jahr.
Physische Grenzen erzwingen eine horizontale Decke: eine maximale Geschwindigkeit S_max, die durch die Größe von Molekülen, Lichtgeschwindigkeit & Wärmekonstraiten bestimmt wird. Wenn das exponentielle Wachstum S_max erreicht, muss sich die Geschwindigkeit verlangsamen.
Logistische Sättigung
Ein gängiges Modell für Wachstum mit einer Decke:
S(t) = S_max / (1 + e^(−r(t − t₀)))
Dies ist die logistische Gleichung angewendet auf Technologie. Frühe Zeiten (t << t₀): S(t) ≈ S_max × e^(r(t−t₀)) — reines exponentielles Wachstum. In der Nähe der Decke (t >> t₀): S(t) → S_max asymptotisch.
Die Geometrie: eine gerade Linie auf Log-Lineardaten biegt in der Nähe der Decke, produzierend ein S-förmiges Diagramm, wenn es auf lineare lineare Koordinaten betrachtet wird.
Wann tritt das Wachstum in Sättigung?
Setzen Sie voraus, dass die Geschwindigkeit einer Einzelverarbeitung bei 10^(0,09t) wächst, beginnend mit 10⁰ Operationen pro Sekunde im Jahr 1940. Physische Decke: S_max = 10^(12) Operationen pro Sekunde (eine grobe Schätzung für einen Single-Core-Prozessor, begrenzt durch thermische & Lichtgeschwindigkeitskonstraiten).
Maximaler Kommunikationsradius
Die Taktfrequenz eines Prozessors bestimmt den maximalen Radius, innerhalb dessen er in einem Zyklus kommunizieren kann. Signale haben eine Geschwindigkeit von etwa 2×10⁸ m/s in Kupfer.
Für einen Taktpunkt T (in Sekunden) ist der maximale einweg-Kommunikationsradius:
r_max = v × T / 2
(teile durch 2 für Hin- und Rückweg: Das Signal muss innerhalb von T ausgehen und zurückkehren)
Mit steigender Taktfrequenz wird T kleiner, so dass r_max abnimmt. Diese geometrische Einschränkung zwingt die Bauteile, sich enger zusammenzuziehen - die Chipfläche reduziert - oder Langzeitspannungen für die Kommunikation mit außerhalb des Chips zu akzeptieren.
Der Einflussbereich
Alle Bauteile, die innerhalb eines Taktkreises erreicht werden können, bilden einen Kugelraum mit dem Radius r_max im Zentrum des Prozessors. Der Volumen: V = (4/3)π r_max³.
Wenn die Dichte der Bauteile ρ (Bauteile/m³) beträgt, dann ist die Anzahl der erreichen Bauteile innerhalb eines Zyklus: N = ρ × V = ρ × (4/3)π r_max³.
Mit zunehmender Taktfrequenz nimmt r_max ab, so dass N kubisch abnimmt - ein 2-facher Anstieg der Taktfrequenz reduziert die Anzahl der erreichen Bauteile um (1/2)³ = 1/8.
Erreichbare Bauteile pro Takzylkus
Ein 1993er Arbeitsplatz arbeitet bei 100 MHz (T = 10 ns). Signalgeschwindigkeit = 2×10⁸ m/s. Bauteildichte auf einer Leiterplatte ≈ 10⁸ Bauteile/m³ (ungefährer Schätzung einschließlich Chips, Widerstände, Kapazitäten).
Ein moderner GPU arbeitet bei 2 GHz (T = 0,5 ns).
Die Grenze für die Parallelbeschleunigung
Die Geschwindigkeit eines Einzelprozessors nähert physikalische Deckel. Die Industrie-Reaktion: parallele Architekturen. Amdahls Gesetz quantifiziert den erzielbaren Grad der Beschleunigung durch Parallelität.
Amdahls Gesetz
Stellen Sie sich vor, dass ein Bruchteil f eines Programms parallelisiert werden kann und dass ein Bruchteil (1−f) serienmäßig ausgeführt werden muss. Mit p Prozessoren:
Speedup(p) = 1 / ((1−f) + f/p)
Als p → ∞: Speedup_max = 1 / (1−f)
Der serienmäßige Bruchteil (1−f) legt eine feste Decke für den erzielbaren Beschleunigungsfaktor fest, unabhängig davon, wie viele Prozessoren Sie hinzufügen.
Geometrische Erkenntnis: Die Beschleunigung als Funktion von p folgt einer Hyperbelkurve. Die Asymptote ist 1/(1−f). Für f = 0,9 beträgt die maximale Beschleunigung 10, selbst mit unendlich vielen Prozessoren. Für f = 0,99 beträgt die maximale Beschleunigung 100.
Hamming implizite Lektion: Der Interesse an parallelen Architekturen war real, aber die Ausbeute hing vollständig davon ab, wie parallelisierbar die Arbeitsbelastung war - ein Fakt, den viele Optimisten im Bereich paralleler Rechnung übersehen haben.
Berechnung der Parallelbeschleunigung
Eine wissenschaftliche Simulation läuft in 1000 Sekunden auf einem Prozessor. Profiling zeigt: 200 Sekunden in einer serienmäßigen Initialisierungsphase (kann nicht parallelisiert werden); 800 Sekunden in einer parallelen Rechenphase.