Методический материал: Многопрограммная работа ЭВМ. Многомашинные и многопроцессорные вычислительные системы

Руководство для преподавателя по проведению учебного занятия 19 дисциплины «ОП.02 Архитектура аппаратных средств» (СИЭУиП). Включает дидактические цели, методику поэтапного изложения материала, разбор типичных студенческих ошибок и критерии проверки индивидуального практикума.

1. Дидактический профиль занятия и планируемые результаты

2. Методические рекомендации по изложению сложных тем

2.1. Разграничение понятий: многопрограммность, многопоточность и мультипроцессинг

Студенты часто смешивают программную псевдопараллельность на одном ядре и истинный аппаратный параллелизм. Преподавателю рекомендуется использовать наглядную аналогию:

2.2. Протокол MESI и физика ложного разделения (False Sharing)

Ключевой момент при объяснении протокола MESI — акцент на неделимости кэш-линии (64 байта). Необходимо подчеркнуть: кэш не отслеживает отдельные 4-байтные целые числа `int`. Если две независимые переменные разных ядер попали в один 64-байтный блок, они делят общую судьбу когерентности. Запись одного ядра принудительно инвалидирует кэш второго ядра, вызывая лавинообразные транзакции на системной шине.

2.3. Сетевой интерконнект: Ethernet против InfiniBand и концепция RDMA

Необходимо объяснить студентам, почему в суперкомпьютерах не используют обычный Ethernet с TCP/IP:

3. Типичные ошибки обучающихся и методы их предотвращения

Типичная ошибка В чем проявляется дефект понимания Педагогический прием и контрпример
Путаница между процессами и потоками Студент утверждает, что потоки имеют изолированную память, или что процессы разделяют общие переменные без специальных средств ОС. Показать структуру каталога страниц: потоки процесса имеют один и тот же адрес CR3 и видят одинаковые виртуальные адреса кучи, а процессы имеют разные деревья MMU.
Игнорирование неделимости кэш-линии (False Sharing) Студент считает, что если потоки пишут в разные переменные a и b, конфликта в кэше быть не может. Разобрать размер строки кэша (64 байта). Показать, что sizeof(int) = 4 байта, поэтому в одну кэш-линию помещается 16 независимых целочисленных переменных.
Ошибки в состояниях MESI Студент полагает, что при записи в строку состояния Shared запись происходит локально без уведомления шины. Напомнить, что состояние Shared означает наличие копий у других ядер. Прямая запись без сигнала инвалидации приведет к рассинхронизации данных. Поэтому обязателен сигнал BusInval и сброс остальных кэшей в Invalid.
Завышение реального ускорения по Амдалу Студент вычисляет ускорение для $n = 512$ при $s = 0.05$ и получает 400 раз (подставляет формулу Густафсона вместо Амдала). Проверить асимптотический предел: $1 / s = 1 / 0.05 = 20$. Объяснить, что при фиксированном объеме задачи ускорение принципиально не может превысить теоретический потолок.
Нереалистичный выбор оборудования В кейсе 1 (молекулярная динамика) или кейсе 3 (LLM) предлагается стандартная сеть Gigabit Ethernet. Показать расчет баланса вычислений и коммуникаций: при задержке сети в 30 мкс время передачи градиентов или границ сетки в десятки раз превысит время полезного расчета, эффективность упадет ниже 10%.

4. Критерии оценивания практической работы (4-балльная шкала)