Открыть сервис

Многопроцессорная система

Многопроцессорная система — это вычислительная система, содержащая два или более центральных процессора (ядер), которые совместно используют общую память, шину данных или другие ресурсы для параллельного выполнения задач. Такие системы относятся к классу параллельных вычислительных архитектур и предназначены для повышения производительности, надёжности и масштабируемости вычислений. В отличие от однопроцессорных систем, многопроцессорные позволяют одновременно обрабатывать несколько потоков инструкций, что особенно важно для ресурсоёмких приложений — от научных расчётов до серверных нагрузок.

История

Первые многопроцессорные системы появились в 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 6719652SMPМейнфреймы
Sun-3/16019862SMPРабочие станции
Cray T3E1995до 2048MPPСуперкомпьютеры
«Эльбрус-804»20194SMP/NUMAСерверы
«Ломоносов-2»201449 152MPPСуперкомпьютер

Интересные факты

  • Первый коммерчески успешный многопроцессорный суперкомпьютер — 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 →