Итоги
Кратко — что стоит унести из раздела «Параллельные вычисления». Если пункт кажется туманным — откройте указанную главу или оглавление.
Что запомнить
Раздел «Параллельные вычисления» закрывает пробел между «железом с многими ядрами» и осознанным построением параллельных программ.
Архитектура и системы
- Флинн (SISD/SIMD/MIMD) задаёт рамку: data-parallel (GPU, AVX) vs независимые потоки (OpenMP, MPI).
- Shared vs distributed memory определяет API: потоки в одном процессе или сообщения между узлами.
- NUMA, кластеры, GRID — от одного сервера до метакомпьютинг с разной ценой коммуникации.
Модели и формализация
- PRAM, message passing, SPMD — абстракции для оценок и переноса алгоритмов.
- Граф алгоритма и матрица следования — кто с кем несовместим; основа расписания.
- Информационный граф, EST/LST, критический путь — нижняя граница времени и pmin.
- Сети Петри — ресурсы, конфликты, bounded buffers.
Производительность
- Амдаль — потолок из-за последовательной доли f.
- Густафсон-Барсис — рост задачи вместе с машиной.
- Strong / weak scaling, efficiency, конвейерный throughput.
Практика
- Data vs task parallelism, блочная декомпозиция, halo, first-touch.
- Матричное умножение — эталон для BLAS/MPI/GPU.
- OpenMP, MPI, профилирование — код и отладка на практике.
- Профилирование, минимизация barriers, overlap compute/comm.
Связь с другими разделами
| Тема | Куда идти дальше |
|---|---|
| Потоки и IPC | 4.05 Асинхронность |
| Железо, SIMD, NUMA | 1.08 Как работает компьютер |
| OpenMP / MPI в коде | Fortran 811 |
| Сложность алгоритмов | 4.01 Анализ эффективности |
Параллелизм — не самоцель: измеряйте speedup, проверяйте корректность на p = 1 и документируйте предположения о данных и топологии.
Куда идти дальше
Полный маршрут — на странице о разделе.
Проверьте себя: Чек-лист самопроверки.
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Введение в параллельные вычисления — зачем они нужны, чем отличаются от асинхронности, основные проблемы высокопроизводительных вычислений (HPC). Сети Петри для моделирования параллельных процессов, диаграммы расписания, связь с графом алгоритма. Практическое параллельное программирование — OpenMP, MPI, типовые паттерны, профилирование и отладка параллельного кода. Классификация параллельных архитектур — таксономия Флинна, SIMD и MIMD, векторно-конвейерные системы, степень достижимого параллелизма. Модели памяти в параллельных системах — общая и распределённая память, мультипроцессоры и мультикомпьютеры, кластеры, GRID и метакомпьютинг. Модели параллельных вычислений — PRAM, message passing, SPMD; сети передачи данных между процессорами; диаграммы расписания. Граф алгоритма — построение, свойства, матрица следования, выявление логически несовместимых операторов и параллелизма. Временные характеристики параллельных алгоритмов — информационный граф, ранние и поздние сроки, критический путь, минимальное число процессоров. Оценка производительности параллельных компьютеров — закон Амдала, закон Густафсона-Барсиса, эффективность, масштабируемость, конвейер. Построение параллельных алгоритмов — инженерный подход, классификация параллелизма, этапы разработки, декомпозиция данных, рекомендации. Параллельные алгоритмы умножения матриц — последовательная база, блочная декомпозиция, Cannon, SUMMA, практические рекомендации. Вопросы для самопроверки по разделу «Параллельные вычисления».Параллельные вычислительные процессы — введение
Сети Петри и формальные расписания
Практика — OpenMP, MPI и профилирование
Классификация параллельных архитектур
Память, мультипроцессоры, кластеры и GRID
Модели параллельных вычислений и топологии
Граф алгоритма и матрица следования
Временной анализ параллельных алгоритмов
Законы производительности параллельных систем
Инженерия параллельных алгоритмов
Параллельное умножение матриц
Чек-лист самопроверки