Многопроцессорная система
Многопроцессорная система — это вычислительная система, содержащая два или более центральных процессора (ядер), которые совместно используют общую память, шину данных или другие ресурсы для параллельного выполнения задач. Такие системы относятся к классу параллельных вычислительных архитектур и предназначены для повышения производительности, надёжности и масштабируемости вычислений. В отличие от однопроцессорных систем, многопроцессорные позволяют одновременно обрабатывать несколько потоков инструкций, что особенно важно для ресурсоёмких приложений — от научных расчётов до серверных нагрузок.
История
Первые многопроцессорные системы появились в 1960-х годах в рамках проектов по созданию высокопроизводительных мейнфреймов. Одной из первых коммерческих реализаций стала система IBM System/360 Model 67 (1965), поддерживавшая до двух процессоров. В 1970-х годах компания Burroughs выпустила серию B6700, где использовалась симметричная многопроцессорная архитектура. Развитие микропроцессоров в 1980-х привело к появлению доступных многопроцессорных рабочих станций, например, Sun-3/160 (1986) с двумя процессорами Motorola 68020.
В 1990-х годах, с ростом популярности операционной системы Linux и стандартизацией интерфейсов, многопроцессорность стала стандартом для серверов и суперкомпьютеров. В 2000-х годах, с появлением многоядерных процессоров (например, Intel Core Duo в 2006 году), многопроцессорность перешла на уровень одного кристалла, что сделало её массовой. В России развитие многопроцессорных систем связано с проектами суперкомпьютеров, таких как «Ломоносов» (2009) на базе процессоров Intel Xeon, и отечественных разработок — процессоров «Эльбрус» (серия 8С, 16С), поддерживающих многопроцессорные конфигурации.
Архитектура
Симметричная многопроцессорная система (SMP)
В архитектуре SMP (Symmetric Multi-Processing) все процессоры равноправны и имеют одинаковый доступ к общей оперативной памяти через единую шину или коммутатор. Каждый процессор может выполнять любые задачи, включая системные вызовы. Недостатком является ограничение пропускной способности шины — при увеличении числа процессоров (обычно до 8–16) возникает конкуренция за доступ к памяти, что снижает прирост производительности. Примеры: серверы на базе Intel Xeon (до 8 процессоров), рабочие станции с AMD Opteron.
Асимметричная многопроцессорная система (ASMP)
В ASMP (Asymmetric Multi-Processing) один процессор (главный) управляет операционной системой и распределяет задачи, а остальные (подчинённые) выполняют только пользовательские вычисления. Такая схема проще в реализации, но менее гибка — при отказе главного процессора система выходит из строя. Используется в специализированных системах, например, в некоторых маршрутизаторах и встроенных устройствах.
Массивно-параллельные системы (MPP)
В архитектуре MPP (Massively Parallel Processing) каждый процессор имеет собственную локальную память и взаимодействует с другими через высокоскоростные каналы (например, InfiniBand). Такие системы могут содержать тысячи процессоров и используются в суперкомпьютерах. Примеры: суперкомпьютер «Ломоносов-2» (МГУ, 2014) с пиковой производительностью 1,8 Пфлопс, система IBM Blue Gene/Q.
Кластерные системы
Кластер — это группа независимых компьютеров (узлов), объединённых сетью, которые работают как единая вычислительная система. Каждый узел может быть как однопроцессорным, так и многопроцессорным. Кластеры широко применяются в облачных вычислениях, научных расчётах и веб-сервисах. Например, кластер «СКИФ-Аврора» (Южно-Уральский государственный университет, 2021) включает более 1000 вычислительных узлов на базе процессоров AMD EPYC.
Классификация по способу доступа к памяти
UMA (Uniform Memory Access)
В системах UMA все процессоры имеют одинаковое время доступа к любой ячейке общей памяти. Это характерно для SMP-архитектур. Недостаток — масштабируемость ограничена пропускной способностью шины.
NUMA (Non-Uniform Memory Access)
В NUMA память физически распределена между процессорами, но логически является общей. Доступ к «своей» памяти быстрее, чем к памяти другого процессора. Это позволяет строить системы с десятками процессоров (например, серверы на базе AMD EPYC с поддержкой до 64 ядер на сокет). В России технология NUMA используется в серверах «Эльбрус-804» (до 4 процессоров).
COMA (Cache-Only Memory Architecture)
В COMA вся память системы является кешем для данных, которые могут мигрировать между процессорами. Применяется редко, в основном в исследовательских проектах.
Программное обеспечение
Операционные системы
Для многопроцессорных систем требуются операционные системы, поддерживающие симметричную многопроцессорность (SMP). К таким относятся:
- Linux — поддерживает SMP с версии 2.0 (1996); в современных дистрибутивах (например, Astra Linux Special Edition — сертифицирована в РФ, включена в Единый реестр российского ПО) реализована полная поддержка NUMA.
- Windows Server — поддерживает до 64 процессоров в редакции Datacenter.
- ОС «Эльбрус» — российская операционная система, оптимизированная для процессоров «Эльбрус» и поддерживающая до 4 процессоров в одном узле.
Параллельное программирование
Для эффективного использования многопроцессорных систем применяются:
- MPI (Message Passing Interface) — стандарт для обмена сообщениями в распределённых системах (кластерах, MPP).
- OpenMP — API для параллельного программирования с общей памятью, поддерживаемый компиляторами C/C++ и Fortran.
- POSIX Threads (pthreads) — библиотека для создания и управления потоками в Unix-подобных системах.
Применение
Научные вычисления
Многопроцессорные системы используются для моделирования климата, расчёта аэродинамики, обработки данных с Большого адронного коллайдера. Например, суперкомпьютер «Кристофари» (Россия, 2023) на базе 48 процессоров AMD EPYC применяется для задач материаловедения.
Серверные нагрузки
Веб-серверы, базы данных (например, PostgreSQL, Oracle) и облачные платформы (Yandex Cloud, VK Cloud — российские сервисы) используют многопроцессорные серверы для обработки тысяч запросов в секунду.
Встраиваемые системы
Многопроцессорные контроллеры применяются в автомобильной электронике (системы управления двигателем), промышленной автоматике и авионике. Например, российский микроконтроллер «Мультикор» (АО «ПКК Миландр») содержит два ядра ARM Cortex-M4F.
Обработка сигналов и мультимедиа
Цифровые сигнальные процессоры (DSP) и графические процессоры (GPU) часто объединяются в многопроцессорные конфигурации для задач видеомонтажа, рендеринга и машинного обучения. Например, NVIDIA Tesla V100 (организация признана иноагентом в РФ) содержит 5120 ядер CUDA.
Преимущества и недостатки
Преимущества
- Повышение производительности — параллельное выполнение задач сокращает время вычислений.
- Надёжность — при отказе одного процессора система может продолжать работу (если поддерживается «горячая» замена).
- Масштабируемость — возможность наращивания вычислительной мощности путём добавления процессоров.
Недостатки
- Сложность программирования — требуется синхронизация потоков и избегание состояний гонки.
- Рост энергопотребления — увеличение числа процессоров ведёт к росту тепловыделения.
- Закон Амдала — ускорение ограничено долей последовательного кода в программе.
Примеры многопроцессорных систем
| Система | Год | Число процессоров | Тип | Применение |
|---|---|---|---|---|
| IBM System/360 Model 67 | 1965 | 2 | SMP | Мейнфреймы |
| Sun-3/160 | 1986 | 2 | SMP | Рабочие станции |
| Cray T3E | 1995 | до 2048 | MPP | Суперкомпьютеры |
| «Эльбрус-804» | 2019 | 4 | SMP/NUMA | Серверы |
| «Ломоносов-2» | 2014 | 49 152 | MPP | Суперкомпьютер |
Интересные факты
- Первый коммерчески успешный многопроцессорный суперкомпьютер — Cray X-MP (1982) — содержал до 4 процессоров.
- В 2023 году российский суперкомпьютер «Черёмуха» (МГТУ им. Баумана) вошёл в топ-100 мирового рейтинга TOP500, используя архитектуру NUMA на процессорах Intel Xeon.
- Процессор «Эльбрус-16С» (2023) поддерживает до 4 процессоров в одной системе с общей памятью до 4 ТБ.
Критика
Основные критические замечания в адрес многопроцессорных систем связаны с нелинейным ростом производительности при увеличении числа процессоров (закон Амдала) и высокими затратами на охлаждение и электропитание. В некоторых задачах, особенно с интенсивным обменом данными, эффективность многопроцессорности может быть ниже, чем у однопроцессорных систем с высокой тактовой частотой. Кроме того, программное обеспечение не всегда оптимизировано для параллельных вычислений, что ограничивает практическую пользу от многопроцессорных конфигураций.
Источники
- Таненбаум Э., Бос Х. «Современные операционные системы» (4-е издание, 2015).
- Хеннесси Дж., Паттерсон Д. «Архитектура компьютера и проектирование вычислительных систем» (5-е издание, 2013).
- Техническая документация АО «МЦСТ» на процессоры «Эльбрус» (2023).
- Отчёт TOP500.org за ноябрь 2023 года.
- «Параллельные вычисления» — учебное пособие МГУ им. М. В. Ломоносова (2021).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →