Домашнее задание - Архитектуры вычислительных систем и оценка производительности
Выполняйте только если преподаватель назначил это задание. Срок сдачи сообщит преподаватель.
Разобранный образец: расчет пиковой производительности и пределов ускорения по закону Амдала и Густафсона
Условие задачи-образца:
Вычислительный узел состоит из двух 16-ядерных процессоров (всего 32 ядра), работающих на частоте 3.0 ГГц. Каждое ядро за один такт выполняет 16 операций с плавающей запятой двойной точности (DP FLOP/цикл с поддержкой AVX2 FMA). На данном узле запускается алгоритм численного моделирования, в котором доля последовательного кода составляет 5% ($s = 0.05$, $p = 0.95$). Требуется:
Рассчитать теоретическую пиковую производительность узла ($R_{peak}$) в GFLOPS и TFLOPS.
Рассчитать теоретическое ускорение узла ($S_{Amdahl}$) по закону Амдала при использовании всех 32 ядер. Найти эффективность распараллеливания ($E = S / n$).
Рассчитать ускорение по закону Густафсона-Барсиса ($S_{Gustafson}$) в предположении, что объем задачи масштабируется пропорционально числу ядер.
Расчет ускорения по закону Амдала (Strong Scaling): Формула: $S_A = \frac{1}{s + \frac{p}{n}} = \frac{1}{0.05 + \frac{0.95}{32}}$.
Вычисление параллельной компоненты: $\frac{0.95}{32} \approx 0.0296875$.
Знаменатель: $0.05 + 0.0296875 = 0.0796875$.
Ускорение: $S_A = \frac{1}{0.0796875} \approx \mathbf{12.55}$ раз.
Эффективность: $E_A = \frac{S_A}{n} = \frac{12.55}{32} \approx 0.392$ или $\mathbf{39.2\%}$.
Вывод: Из-за всего 5% последовательного кода производительность 32 ядер используется лишь на 39.2%, а предельное теоретическое ускорение при бесконечном числе ядер не превысит $\frac{1}{s} = \frac{1}{0.05} = 20$ раз.
Расчет ускорения по закону Густафсона-Барсиса (Weak Scaling): Формула: $S_G = s + p \times n = 1 + (n - 1) \times p$.
Подстановка: $S_G = 0.05 + 0.95 \times 32 = 0.05 + 30.40 = \mathbf{30.45}$ раз.
Эффективность: $E_G = \frac{S_G}{n} = \frac{30.45}{32} \approx 0.952$ или $\mathbf{95.2\%}$.
Вывод: Если с ростом вычислительной мощности пропорционально увеличивать детализацию модели (число ячеек сетки), то доля последовательных накладных расходов размывается, обеспечивая близкое к линейному ускорение ($30.45\times$ на 32 ядрах).
Упражнение 1. Классификация архитектур ЭВМ и метрики быстродействия
Ответьте на теоретические вопросы, опираясь на таксономию Флинна и методики тестирования производительности.
Упражнение 2. Расчет пиковой производительности и масштабируемости
Выполните практический расчет характеристик вычислительной системы по приведенным исходным данным.
Исходные данные: Серверный вычислительный кластер состоит из 16 двухпроцессорных узлов (в каждом узле 2 процессора по 16 ядер с тактовой частотой 2.0 ГГц, выполняющих 16 DP FLOP/цикл на ядро). Общее число ядер в кластере: $16 \times 2 \times 16 = 512$ ядер.
В параллельной программе физического моделирования доля строго последовательного кода составляет 1% ($s = 0.01$, $p = 0.99$).