Wykresy logarytmiczne-logarytmiczne & nasycenie
Prędkość obliczeń naśladowała krzywą wzrostu eksponenckiego przez 50 lat. Na wykresie logarytmiczno-liniowym (log prędkości vs liniowy czas) wygląda to jak prostą o nachyleniu b = szybkość wzrostu w magnitudach dziesiętnych na rok.
Fizyczne ograniczenia nakładają dach poziomy: maksymalna prędkość S_max zależna od wielkości cząsteczek, prędkości światła & ograniczeń cieplnych. Gdy eksponencja zbliża się do S_max, wzrost musi się zwolnić.
Nasycenie logistyczne
Powszechny model wzrostu z dachem:
S(t) = S_max / (1 + e^(−r(t − t₀)))
To jest równanie logistyczne zastosowane do technologii. Na wczesnych czasach (t << t₀): S(t) ≈ S_max × e^(r(t−t₀)) — czysta eksponencja. Blisko dachu (t >> t₀): S(t) → S_max asymptotycznie.
Geometria: prostą linię na osiach logarytmiczno-liniowych zakręca się blisko dachu, tworząc literę S na osiach liniowo-liniowych.
Kiedy wzrost nasycenia?
Załóżmy, że prędkość pojedynczego procesora rośnie wg 10^(0,09t) od 10⁰ operacji na sekundę w 1940 roku. Fizyczny dach: S_max = 10^(12) operacji na sekundę (aproksymacja dla jednostki procesorowej, ograniczona przez ograniczenia cieplne & prędkości światła).
Maksymalny promień komunikacji
Prędkość zegara procesora określa maksymalny promień, w którym może komunikować się w jednym cyklu. Sygnały poruszają się z prędkością około 2×10⁸ m/s w miedzi.
Dla okresu zegara T (w sekundach), maksymalny jednoskładnikowy promień komunikacji:
r_max = v × T / 2
(podziel przez 2 dla obwiedni: sygnał musi wyjść i wrócić w ciągu T)
Zwiększając prędkość zegara, T maleje, więc r_max się zmniejsza. Ten geometryczny ograniczenie zmusza komponenty do zbliżania się bliżej - zmniejszania obszaru płyty - lub akceptowania opóźnienia wielocyklowego dla komunikacji poza płyty.
Sfera wpływu
Wszystkie komponenty, które są osiągalne w jednym cyklu zegara, tworzą sferę o promieniu r_max, ośrodek na procesorze. Objętość: V = (4/3)π r_max³.
Jeśli gęstość komponentów wynosi ρ (komponenty/m³), to liczba osiągalnych komponentów w jednym cyklu: N = ρ × V = ρ × (4/3)π r_max³.
Zmniejszając się r_max zwiększając prędkość zegara, N zmniejsza się kubikowo - 2-krotnie szybszy zegar zmniejsza liczbę osiągalnych komponentów o (1/2)³ = 1/8.
Osiągalne komponenty na cykl zegara
Stacja robocza z 1993 r. działa na częstotliwości 100 MHz (T = 10 ns). Prędkość sygnału wynosi 2×10⁸ m/s. Gęstość komponentów na płycie drukowanej wynosi około 10⁸ komponentów/m³ (szacunkowe, wliczając chipy, rezystory, kondensatory).
Nowy GPU działa na 2 GHz (T = 0,5 ns).
Ogranicznik Szybkości W Paralelizmie
Szybkość pojedynczego procesora zbliża się do fizycznych sufitów. Odpowiedź przemysłu: architektury parallelne. Prawo Amdahla ilustruje możliwe przyspieszenie dzięki paralelizmowi.
Prawo Amdahla
Załóżmy, że część f programu można zrealizować w sposób parallelny, a część (1−f) musi być wykonana kolejno. Z p procesorami:
Szybkość(p) = 1 / ((1−f) + f/p)
Gdy p → ∞: Szybkość_max = 1 / (1−f)
Część serialna (1−f) ustala twardy sufit na możliwe przyspieszenie, niezależnie od ilości dodanych procesorów.
Wgląd geometryczny: Szybkość względem p obserwujemy na wykresie hiperbolicznym. Asymptota wynosi 1/(1−f). Dla f = 0,9, maksymalne przyspieszenie wynosi 10, nawet z nieograniczonymi procesorami. Dla f = 0,99, maksymalne przyspieszenie wynosi 100.
Niewyrażone przez Hamminga nauka: zainteresowanie architekturami parallelnymi było realne, ale zyski zależały wyłącznie od stopnia możliwości paralelizacji obciążenia - fakt, który wielu optymistów w dziedzinie obliczeń parallelnych zignorowało.
Obliczanie Szybkości Paralelnej
Naukowe symulacje działają 1000 sekund na jednym procesorze. Profiling ujawnia: 200 sekund w fazie inicjalizacji serialnej (nie można ją paralelizować); 800 sekund w fazie obliczeń parallelnych.