Логарифмічні графіки та насичення
Швидкість обчислень слідувала кривій експоненційного зростання протягом 50 років. На напівлогарифмічному графіку (логарифм швидкості проти лінійного часу) це виглядає як пряма лінія з нахилом b = темп зростання в порядках величини на рік.
Фізичні обмеження накладають горизонтальну стелю: максимальну швидкість S_max, яку визначають розміри молекул, швидкість світла та теплові обмеження. Коли експоненційне зростання наближається до S_max, воно повинно уповільнитися.
Логістичне насичення
Поширена модель зростання зі стелею:
S(t) = S_max / (1 + e^(−r(t − t₀)))
Це логістичне рівняння, застосоване до технологій. На ранніх стадіях (t << t₀): S(t) ≈ S_max × e^(r(t−t₀)) — чисто експоненційне. Біля стелі (t >> t₀): S(t) → S_max асимптотично.
Геометрія: пряма лінія на напівлогарифмічних координатах вигинається біля стелі, утворюючи S-подібну форму при перегляді на лінійно-лінійних координатах.
Коли зростання насичується?
Припустимо, швидкість однопроцесорного комп'ютера зростає як 10^(0.09t), починаючи від 10⁰ оп/с у 1940 році. Фізична стеля: S_max = 10^(12) оп/с (приблизна оцінка для однопроцесорного ядра, обмеженого тепловими обмеженнями та швидкістю світла).
Максимальний радіус зв'язку
Тактова частота процесора визначає максимальний радіус, у межах якого він може встановити зв'язок за один такт. Сигнали поширюються зі швидкістю приблизно 2×10⁸ м/с у міді.
Для тактового періоду T (в секундах) максимальний односторонній радіус зв'язку:
r_max = v × T / 2
(ділимо на 2 для зворотного шляху: сигнал має вийти і повернутися в межах T)
Коли тактова частота зростає, T зменшується, тому r_max скорочується. Це геометричне обмеження змушує компоненти розташовуватися ближче — зменшуючи площу чипа — або приймати затримку в кілька тактів для зовнішнього зв'язку.
Сфера впливу
Усі компоненти, досяжні за один такт, утворюють сферу радіуса r_max з центром у процесорі. Об'єм: V = (4/3)π r_max³.
Якщо щільність компонентів дорівнює ρ (компонентів/м³), кількість компонентів, досяжних за один такт: N = ρ × V = ρ × (4/3)π r_max³.
Зі скороченням r_max при зростанні тактової частоти N зменшується кубічно — подвоєння тактової частоти скорочує кількість досяжних компонентів на (1/2)³ = 1/8.
Досяжні компоненти за такт
Робоча станція ери 1993 року працює на частоті 100 МГц (T = 10 нс). Швидкість сигналу = 2×10⁸ м/с. Щільність компонентів на друкованій платі ≈ 10⁸ компонентів/м³ (приблизна оцінка, включаючи мікросхеми, резистори, конденсатори).
Сучасний GPU працює на частоті 2 ГГц (T = 0,5 нс).
Межа паралельного прискорення
Швидкість однопроцесорних систем наближається до фізичних меж. Відповідь індустрії: паралельні архітектури. Закон Амдала кількісно визначає прискорення, досяжне завдяки паралелізму.
Закон Амдала
Припустимо, частка f програми може бути розпаралелена, а частка (1−f) повинна виконуватись послідовно. З p процесорами:
Speedup(p) = 1 / ((1−f) + f/p)
As p → ∞: Speedup_max = 1 / (1−f)
Послідовна частка (1−f) встановлює тверду стелю для досяжного прискорення, незалежно від кількості доданих процесорів.
Геометричне розуміння: прискорення як функція від p слідує гіперболічній кривій. Асимптота дорівнює 1/(1−f). При f = 0,9 максимальне прискорення = 10, навіть з нескінченною кількістю процесорів. При f = 0,99 максимальне прискорення = 100.
Прихований урок Геммінга: інтерес до паралельних архітектур був реальним, але виграш повністю залежав від того, наскільки навантаження піддавалося розпаралеленню — факт, який багато оптимістів паралельних обчислень ігнорували.
Обчислення паралельного прискорення
Наукове моделювання виконується 1000 секунд на одному процесорі. Профілювання показує: 200 секунд у послідовній фазі ініціалізації (не може бути розпаралелена); 800 секунд у паралельній фазі обчислення.