English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

гость
1 / ?
назад к урокам

Графики в логарифмической шкале & насыщение

Скорость вычислений следовала кривой экспоненциального роста на протяжении 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) операций/с (грубая оценка для одноядерного процессора, ограниченного тепловыми & световыми ограничениями).

Используя S(t) = 10^(0.09·t) (t = лет с 1940 года), найдите год, когда S(t) достигает 10¹⁰ (приближаясь к потолку). Покажите алгебраические вычисления. Затем вычислите: сколько удвоений скорости происходит между 1952 годом (IBM 701) и этим годом достижения потолка? Используйте время удвоения = ln(2)/b, где b = 0.09 × ln(10).

Максимальный радиус связи

Тактовая частота процессора определяет максимальный радиус, в пределах которого он может обмениваться данными за один такт. Сигналы распространяются в меди примерно со скоростью 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 нс).

Для рабочей станции на 100 МГц (T=10 нс, v=2×10⁸ м/с, ρ=10⁸/м³): вычислите r_max, затем V = (4/3)π r_max³, затем N = ρ × V. Затем вычислите то же N для процессора на 2 ГГц (то же ρ, та же v). Каково отношение N(100МГц) / N(2ГГц)?

Предел параллельного ускорения

Скорость однопроцессорных систем приближается к физическим пределам. Ответ отрасли: параллельные архитектуры. Закон Амдала количественно определяет ускорение, достижимое за счёт параллелизма.

Закон Амдала

Предположим, что доля 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 секунд в параллельной фазе вычислений.

Вычислите параллельную долю f. Используя закон Амдала, вычислите Speedup(4), Speedup(16), Speedup(∞). Покажите каждое применение формулы. Затем интерпретируйте: оправдано ли добавление процессоров от 16 до ∞ с учётом аппаратных затрат? Что геометрия говорит об убывающей отдаче?