В эпоху развития суперкомпьютеров и многоядерных процессоров возникает фундаментальный инженерный парадокс:
Классификация базируется на разделении двух ортогональных потоков: команд (Instruction Stream) и данных (Data Stream):
| Класс | Поток команд | Поток данных | Сущность и характерная реализация |
|---|---|---|---|
| SISD | Одиночный | Одиночный | Классическая фон-неймановская машина (одноядерные ЦП, скалярный конвейер) |
| SIMD | Одиночный | Множественный | Векторный параллелизм: одна команда управляет сотнями АЛУ (GPU, AVX-512) |
| MISD | Множественный | Одиночный | Отказоустойчивая обработка: разные алгоритмы над одним потоком датчиков |
| MIMD | Множественный | Множественный | Многозадачные системы: независимые ядра/процессоры (SMP, NUMA, MPP-кластеры) |
Один блок декодирования транслирует инструкцию на матрицу исполнительных АЛУ (Lockstep execution).
if-else, ветви выполняются последовательно с маскированием, снижая КПД.Несколько независимых вычислителей выполняют разные программы над единым общим входным потоком данных.
Множество процессоров асинхронно исполняют различные инструкции над различными данными.
Оценивает ускорение параллельной системы при фиксированном объеме задачи:
Оценивает ускорение при пропорциональном увеличении объема задачи вместе с ростом числа процессоров:
| Параметр | Закон Амдала (Strong Scaling) | Закон Густафсона (Weak Scaling) |
|---|---|---|
| Размер задачи | Фиксирован (N = const) | Растет пропорционально узлам (N ~ n) |
| Цель вычислений | Сократить время ожидания ответа | Увеличить точность и детализацию модели |
| Характер кривой | Асимптотическое насыщение (/s$) | Близкое к линейному возрастание ( + p \cdot n$) |
| Область применения | Транзакционные СУБД, настольные ПК | Суперкомпьютерное моделирование (CFD, климат, LLM) |
numactl), выделение HugePages, использование архитектуры NUMA-aware аллокаторов памяти.