О разделе
Раздел про параллельные вычислительные процессы — целую дисциплину: как устроены параллельные машины, как формально описать алгоритм, оценить ускорение и построить распараллеливание осознанно.
Это другой уровень, чем асинхронность (неблокирующий I/O) или масштабирование сервисов. Здесь речь о том, как разделить вычисление между ядрами, узлами кластера или GPU и доказать, что это даст выигрыш.
Рекомендуемый порядок:
| Шаг | Материал | Зачем |
|---|---|---|
| 1 | Введение и проблемы HPC | Зачем параллелизм, типичные узкие места |
| 2 | Классификация архитектур | Флинн, SIMD, конвейер, степень параллелизма |
| 3 | Память, кластеры, GRID | Shared vs distributed, NUMA, метакомпьютинг |
| 4 | Модели и топологии | PRAM, message passing, SPMD, сети процессоров |
| 5 | Граф алгоритма | Матрица следования, несовместимые операторы |
| 6 | Временной анализ | Ранние/поздние сроки, минимум процессоров |
| 7 | Законы производительности | Амдаль, Густафсон-Барсис, масштабируемость |
| 8 | Инженерия алгоритмов | Декомпозиция, data/task parallelism |
| 9 | Умножение матриц | Классический практический пример |
| 10 | Петри и расписания | Формальные модели процессов |
| 11 | Практика OpenMP/MPI | Код, профилирование, отладка |
С чего начать, если вы уже знаете потоки: прочитайте 1 (проблемы HPC, Roofline) и 7 — там формулы и «почему 16 ядер ≠ ×16 скорости». Затем 5–6, если нужен академический разбор алгоритма по графу.
Смежные материалы:
- Железо: как работает компьютер, GPU
- Практика: Fortran OpenMP/MPI, потоки C++
- IPC: разделяемая память
Параллельные вычислительные процессы — введение
Введение в параллельные вычисления — зачем они нужны, чем отличаются от асинхронности, основные проблемы высокопроизводительных вычислений (HPC).
Сети Петри и формальные расписания
Сети Петри для моделирования параллельных процессов, диаграммы расписания, связь с графом алгоритма.
Практика — OpenMP, MPI и профилирование
Практическое параллельное программирование — OpenMP, MPI, типовые паттерны, профилирование и отладка параллельного кода.
Классификация параллельных архитектур
Классификация параллельных архитектур — таксономия Флинна, SIMD и MIMD, векторно-конвейерные системы, степень достижимого параллелизма.
Память, мультипроцессоры, кластеры и GRID
Модели памяти в параллельных системах — общая и распределённая память, мультипроцессоры и мультикомпьютеры, кластеры, GRID и метакомпьютинг.
Модели параллельных вычислений и топологии
Модели параллельных вычислений — PRAM, message passing, SPMD; сети передачи данных между процессорами; диаграммы расписания.
Граф алгоритма и матрица следования
Граф алгоритма — построение, свойства, матрица следования, выявление логически несовместимых операторов и параллелизма.
Временной анализ параллельных алгоритмов
Временные характеристики параллельных алгоритмов — информационный граф, ранние и поздние сроки, критический путь, минимальное число процессоров.
Законы производительности параллельных систем
Оценка производительности параллельных компьютеров — закон Амдала, закон Густафсона-Барсиса, эффективность, масштабируемость, конвейер.
Инженерия параллельных алгоритмов
Построение параллельных алгоритмов — инженерный подход, классификация параллелизма, этапы разработки, декомпозиция данных, рекомендации.
Параллельное умножение матриц
Параллельные алгоритмы умножения матриц — последовательная база, блочная декомпозиция, Cannon, SUMMA, практические рекомендации.
Итоги
Краткие итоги раздела «Параллельные вычисления».
Чек-лист самопроверки
Вопросы для самопроверки по разделу «Параллельные вычисления».
Параллельные вычисления — о разделе
Подборка материалов раздела «Параллельные вычисления» в энциклопедии Вселенная IT — архитектуры, модели, графы алгоритмов и инженерия HPC.