Wykresy log-log i nasycenie
Prędkość obliczeń podążała krzywą wzrostu wykładniczego przez 50 lat. Na wykresie log-liniowym (log prędkości względem czasu liniowego) wygląda to jak prosta o nachyleniu b = tempo wzrostu w rzędach wielkości na rok.
Fizyczne ograniczenia narzucają poziomy pułap: maksymalną prędkość S_max wyznaczoną przez rozmiar molekuł, prędkość światła i ograniczenia termiczne. Gdy wykładniczy wzrost zbliża się do S_max, musi zwolnić.
Nasycenie logistyczne
Popularny model wzrostu z pułapem:
S(t) = S_max / (1 + e^(−r(t − t₀)))
To jest równanie logistyczne zastosowane do technologii. Na wczesnym etapie (t << t₀): S(t) ≈ S_max × e^(r(t−t₀)) — czysto wykładniczy. Przy pułapie (t >> t₀): S(t) → S_max asymptotycznie.
Geometria: prosta na współrzędnych log-liniowych zagina się przy pułapie, tworząc kształt litery S w układzie współrzędnych liniowo-liniowych.
Kiedy wzrost ulega nasyceniu?
Przyjmijmy, że prędkość jednoprocesorowa rośnie zgodnie z 10^(0.09t) od 10⁰ ops/s w roku 1940. Fizyczny pułap: S_max = 10^(12) ops/s (przybliżone oszacowanie dla procesora jednordzeniowego, ograniczonego przez ciepło i prędkość światła).
Maksymalny promień komunikacji
Częstotliwość taktowania procesora wyznacza maksymalny promień, w obrębie którego może on komunikować się w jednym cyklu. Sygnały rozprzestrzeniają się w miedzi z prędkością około 2×10⁸ m/s.
Dla okresu taktowania T (w sekundach), maksymalny jednostronny promień komunikacji:
r_max = v × T / 2
(dzielone przez 2 ze względu na podróż tam i z powrotem: sygnał musi wyjść i wrócić w czasie T)
Wraz ze wzrostem częstotliwości taktowania T maleje, więc r_max kurczy się. To geometryczne ograniczenie zmusza komponenty do skupienia się bliżej siebie, co zmniejsza powierzchnię układu, lub do akceptowania opóźnienia wielocyklowego w komunikacji poza układem.
Sfera wpływu
Wszystkie komponenty osiągalne w jednym cyklu zegarowym tworzą sferę o promieniu r_max wyśrodkowaną na procesorze. Objętość: V = (4/3)π r_max³.
Jeśli gęstość komponentów wynosi ρ (komponentów/m³), liczba komponentów osiągalnych w jednym cyklu: N = ρ × V = ρ × (4/3)π r_max³.
Gdy r_max maleje wraz ze wzrostem częstotliwości taktowania, N maleje sześciennie: dwukrotne zwiększenie częstotliwości taktowania zmniejsza liczbę osiągalnych komponentów o czynnik (1/2)³ = 1/8.
Osiągalne komponenty na cykl zegarowy
Stacja robocza z roku 1993 pracuje z częstotliwością 100 MHz (T = 10 ns). Prędkość sygnału = 2×10⁸ m/s. Gęstość komponentów na płytce drukowanej ≈ 10⁸ komponentów/m³ (przybliżone oszacowanie uwzględniające układy, rezystory, kondensatory).
Nowoczesny procesor graficzny pracuje z częstotliwością 2 GHz (T = 0,5 ns).
Granica przyspieszenia równoległego
Prędkość jednoprocesorowa zbliża się do fizycznych pułapów. Odpowiedź branży: architektury równoległe. Prawo Amdahla określa ilościowo przyspieszenie osiągalne dzięki równoległości.
Prawo Amdahla
Przyjmijmy, że ułamek f programu może być zrównoleglony, a ułamek (1−f) musi działać szeregowo. Przy p procesorach:
Speedup(p) = 1 / ((1−f) + f/p)
Gdy p → ∞: Speedup_max = 1 / (1−f)
Ułamek szeregowy (1−f) wyznacza twardy pułap osiągalnego przyspieszenia, niezależnie od liczby dodanych procesorów.
Wgląd geometryczny: przyspieszenie jako funkcja p podąża krzywą hiperboliczną. Asymptota wynosi 1/(1−f). Dla f = 0,9 maksymalne przyspieszenie = 10, nawet przy nieskończonej liczbie procesorów. Dla f = 0,99 maksymalne przyspieszenie = 100.
Ukryta lekcja Hamminga: zainteresowanie architekturami równoległymi było realne, lecz zysk zależał całkowicie od tego, w jakim stopniu obciążenie można było zrównoleglić, co wielu entuzjastów obliczeń równoległych ignorowało.
Obliczanie przyspieszenia równoległego
Symulacja naukowa działa przez 1000 sekund na jednym procesorze. Profilowanie ujawnia: 200 sekund w szeregowej fazie inicjalizacji (nie można zrównoleglić); 800 sekund w fazie obliczeń równoległych.