Домашнее задание - Параллельные вычислительные системы и многопрограммная работа

Выполняйте только если преподаватель назначил это задание. Срок сдачи сообщит преподаватель.
Разобранный образец: расчет ускорения и анализ когерентности
Условие образца:

Вычислительный комплекс включает 8 процессоров ($n = 8$). Доля строго последовательного кода в программе составляет $s = 0.10$ ($10\%$). В кэш-памяти Ядра 1 строка находится в состоянии Modified. Процессор 2 инициирует чтение по этому же адресу.

Эталонное решение:
  1. Расчет ускорения по закону Амдала (Strong Scaling):
    Параллельная доля: $p = 1 - s = 1 - 0.10 = 0.90$.
    $$S_A = \frac{1}{s + \frac{p}{n}} = \frac{1}{0.10 + \frac{0.90}{8}} = \frac{1}{0.10 + 0.1125} = \frac{1}{0.2125} \approx 4.71 \text{ раз}.$$ Эффективность параллелизации: $E = \frac{S_A}{n} = \frac{4.71}{8} \approx 58.88\%$.
    Теоретический предел ускорения при бесконечном числе процессоров: $S_{max} = \frac{1}{s} = \frac{1}{0.10} = 10.0$ раз.
  2. Расчет ускорения по закону Густафсона-Барсиса (Weak Scaling):
    $$S_G = s + p \times n = 0.10 + 0.90 \times 8 = 0.10 + 7.20 = 7.30 \text{ раз}.$$ Эффективность параллелизации: $E = \frac{7.30}{8} \approx 91.25\%$.
  3. Поведение протокола когерентности MESI:
    Ядро 2 отправляет по системной шине сигнал запроса на чтение (BusRd). Ядро 1 фиксирует запрос через шинный снупинг (Snooping), перехватывает операцию памяти и сбрасывает актуальные измененные данные в оперативную память (Write-Back), одновременно передавая их Ядру 2. После передачи обе строки переходят в состояние Shared (S).
Упражнение 1. Архитектурное сопоставление и протоколы памяти
Упражнение 2. Расчетная задача масштабирования суперкомпьютерного комплекса

Условие: Высокопроизводительный кластер состоит из 64 вычислительных узлов ($n = 64$). В расчетной гидродинамической задаче доля строго последовательного кода составляет $s = 0.05$ ($5\%$). Соответственно доля параллельного кода $p = 0.95$ ($95\%$).