Графики в логарифмической шкале & насыщение
Скорость вычислений следовала кривой экспоненциального роста на протяжении 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)
При p → ∞: Speedup_max = 1 / (1−f)
Последовательная доля (1−f) задаёт жёсткий предел достижимого ускорения, независимо от количества добавляемых процессоров.
Геометрическое понимание: ускорение как функция p следует гиперболической кривой. Асимптота равна 1/(1−f). При f = 0,9, максимальное ускорение = 10, даже при бесконечном числе процессоров. При f = 0,99, максимальное ускорение = 100.
Неявный урок Хэмминга: интерес к параллельным архитектурам был реальным, но выигрыш целиком зависел от того, насколько параллелизуемой была рабочая нагрузка — факт, который многие оптимисты параллельных вычислений игнорировали.
Вычисление параллельного ускорения
Научное моделирование выполняется 1000 секунд на одном процессоре. Профилирование показывает: 200 секунд в последовательной фазе инициализации (не может быть распараллелена); 800 секунд в параллельной фазе вычислений.