МПС — многопроцессорная система¶
Многопроцессорная система (МПС) — вычислительная система, включающая два и более процессора (или центральных процессорных модулей), работающих под управлением единой операционной системы и решающих общие задачи. МПС относится к классу параллельных вычислительных систем и предназначена для повышения производительности, отказоустойчивости и масштабируемости за счёт одновременного выполнения вычислений несколькими процессорами.
¶Общие сведения
В многопроцессорной системе процессоры разделяют общую память, системы ввода-вывода и ресурсы, операционная система распределяет между ними потоки выполнения. Ключевое отличие МПС от кластера заключается в том, что в МПС процессоры работают в рамках единого адресного пространства и управляются одной операционной системой, тогда как кластер состоит из автономных узлов, каждый из которых имеет собственную ОС и общается с остальными по сети.
Термин «МПС» в русскоязычной вычислительной практике употребляется также в значении «многопроцессорный компьютер» или «многопроцессорный сервер» — аппаратный комплекс, в котором на одной системной плате или в одном корпусе размещено несколько процессорных сокетов.
¶Классификация
МПС классифицируют по нескольким признакам.
По типу организации памяти:
- Системы с общей (разделяемой) памятью (SMP — Symmetric Multiprocessing) — все процессоры имеют доступ к единому физическому адресному пространству. Операционная система равномерно распределяет задачи между процессорами. Наиболее распространённый тип МПС в серверах и рабочих станциях.
- Системы с распределённой памятью (NUMA — Non-Uniform Memory Access) — память физически распределена между узлами, обращение к локальной памяти быстрее, чем к удалённой. Каждый узел содержит процессоры и свой блок памяти, соединённые высокоскоростной шиной или интерконнектом.
- Кластерные системы (MPP — Massively Parallel Processing) — множество автономных узлов, связанных сетью, память каждого узла недоступна напрямую другим узлам.
По степени симметрии:
- SMP (симметричные) — все процессоры равноправны, выполняют одинаковые функции.
- ASMP (асимметричные) — один процессор выполняет функции ведущего (мастера), остальные — ведомые.
По типу процессоров:
- Однородные (гомогенные) — все процессоры одинаковой архитектуры и модели.
- Гетерогенные — включают процессоры разных типов (например, CPU и GPU, или процессоры с разными наборами инструкций).
¶Устройство и принцип работы
В симметричной многопроцессорной системе процессоры обращаются к общей памяти через системную шину или кроссбар-коммутатор. Для согласованной работы кэш-памяти процессоров применяется протокол когерентности кэшей (наиболее распространённые — MESI, MOESI, MESIF). Этот протокол обеспечивает, чтобы все процессоры видели согласованные данные при обращении к общим областям памяти.
Операционная система должна поддерживать многопроцессорную обработку: планировщик распределяет потоки между процессорами, механизмы синхронизации (мьютексы, семафоры, атомарные операции) защищают разделяемые данные от гонок. Поддержка SMP реализована во всех основных ОС — Linux, Windows Server, FreeBSD, Solaris.
Аппаратная часть МПС включает несколько процессорных сокетов, набор микросхем северного моста (или его эквивалент в архитектуре без северного моста), каналы памяти и интерконнект. Современные серверные платформы поддерживают от 2 до 32 и более процессорных сокетов на одну плату.
¶Применение
МПС используются там, где требуется высокая производительность вычислений, обработка больших объёмов данных или высокая доступность:
- серверы баз данных и корпоративные информационные системы;
- высокопроизводительные вычисления (HPC) — научные расчёты, моделирование;
- виртуализация — один физический сервер обслуживает множество виртуальных машин;
- критичные к отказам системы — при выходе из строя одного процессора система продолжает работу (fault tolerance).
¶Достоинства и недостатки
Достоинства МПС:
- рост производительности при параллельной обработке задач;
- отказоустойчивость — деградация, а не отказ при выходе из строя отдельных компонентов;
- эффективное использование ресурсов при обработке множества независимых задач.
Недостатки:
- сложность синхронизации и программирования параллельных приложений;
- ограничение масштабируемости из-за конкуренции за доступ к общей памяти и шине (явление, известное как «узкое место шины»);
- высокая стоимость серверного оборудования.
¶МПС в России
Российские производители многопроцессорных серверов — компания «Ядро» (серийные серверы на базе процессоров «Эльбрус»), «Баобаб» и «Открытые системы». Процессоры «Эльбрус-16С» и «Эльбрус-23+» (разработаны в НИИЭС, входят в холдинг «Росэлектроника») поддерживают многопроцессорную конфигурацию и используются в отечественных серверах для государственных и корпоративных заказчиков. Развитие отечественных МПС связано с курсом на импортозамещение в сфере информационных технологий и создание суверенного программно-аппаратного стека.
¶Историческая справка
Первыми коммерческими многопроцессорными системами считаются машины серии IBM System/360 Model 65 (1965) и Soviet-era ЭВМ «Электроника Ц-1000». Широкое распространение МПС получили в 1990-е годы с развитием архитектуры SMP и появлением многопроцессорных версий Unix-систем. В 2000-е годы развитие многоядерных процессоров привело к тому, что многопроцессорность стала реализовываться на уровне одного чипа (chip-level multiprocessing), однако многопроцессорные серверы с несколькими сокетами сохраняют значение для задач, требующих максимальной производительности.
¶Источники
- Таненбаум Э. Современные операционные системы.
- Скотт С., Скотт Дж. Параллельное программирование: концепции и примеры на C++.
- Сайт компании «Ядро» — описание серверов на процессорах «Эльбрус».
- Материалы НИИЭС по архитектуре процессоров «Эльбрус».
