Многопроцессорные системы
Многопроцессорность (мультипроцессорность, многопроцессорная обработка, англ. multiprocessing) — использование в составе одного устройства двух или более физических процессоров.
Таксономия Флинна:
- ОКОД — Вычислительная система с одиночным потоком команд и одиночным потоком данных (SISD, Single Instruction stream over a Single Data stream).
- ОКМД — Вычислительная система с одиночным потоком команд и множественным потоком данных (SIMD, Single Instruction, Multiple Data).
- МКОД — Вычислительная система со множественным потоком команд и одиночным потоком данных (MISD, Multiple Instruction Single Data).
- МКМД — Вычислительная система со множественным потоком команд и множественным потоком данных (MIMD, Multiple Instruction Multiple Data).
Потенциальные возможности (общая память и реальный параллелизм SMP)
- Проблема: атомарный доступ к памяти
- аппаратный семафор
- аппаратный семафор
- Проблема: обработка прерываний
- контроллер прерываний (решает, на какой процессор послать) и глобальные прерывания
- локальные прерывания
Проблема: когерентность кэша
- Проблема: памяти
- Проблема: межпроцессорного обмена
- коммутация, топология
Закон Амдала: В случае, когда задача разделяется на несколько частей, суммарное время её выполнения на параллельной системе не может быть меньше времени выполнения самого длинного фрагмента
Non-SMP, кластеры