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

Массово-параллельная обработка

Массово-параллельная обработка (Massively Parallel Processing, MPP) — это архитектура вычислительных систем, в которой множество независимых процессоров (узлов) одновременно работают над решением одной общей задачи, разделяя её на множество подзадач, выполняемых параллельно. Ключевым отличием MPP-систем от других видов параллельных архитектур (например, симметричной мультипроцессорной обработки, SMP) является отсутствие общего разделяемого ресурса (памяти или диска) между узлами: каждый узел обладает собственной оперативной памятью, дисковым пространством и копией операционной системы, а обмен данными между ними осуществляется по высокоскоростным каналам связи.

История

Концепция массово-параллельной обработки возникла в 1980-х годах как ответ на ограничения традиционных суперкомпьютеров, построенных на векторных процессорах. Первые коммерческие MPP-системы, такие как Thinking Machines CM-5 (1991) и Intel Paragon (1992), содержали сотни или тысячи процессоров, объединённых в единую сеть. Однако высокая стоимость и сложность программирования ограничивали их применение.

Настоящий прорыв произошёл в 1990-х годах с развитием кластерных технологий. Кластеры, построенные из стандартных серверов (товарного оборудования), стали доступной альтернативой специализированным MPP-системам. В 1997 году проект Beowulf популяризировал подход, при котором дешёвые компьютеры на базе Linux объединялись в вычислительные кластеры. В 2000-х годах, с ростом объёмов данных, MPP-архитектура стала основой для систем управления базами данных (СУБД) нового поколения, таких как Teradata, Greenplum, Vertica и Amazon Redshift.

Принцип работы

В MPP-системе задача разбивается на множество независимых фрагментов, которые распределяются между узлами. Каждый узел обрабатывает свою часть данных, не обращаясь к данным других узлов. Результаты промежуточных вычислений передаются по сети, после чего объединяются.

Ключевой элемент — сеть межсоединений (interconnect), которая обеспечивает низкую задержку и высокую пропускную способность. В современных MPP-системах используются технологии InfiniBand, Gigabit Ethernet или специализированные шины (например, NVLink). Для координации работы узлов применяется программное обеспечение — менеджер ресурсов (например, YARN в Hadoop) или планировщик запросов (в СУБД).

Отличия от SMP и NUMA

  • SMP (Symmetric Multiprocessing): все процессоры имеют доступ к общей оперативной памяти через единую шину. Простота программирования, но ограниченная масштабируемость (обычно до 8–16 процессоров из-за коллизий шины).
  • NUMA (Non-Uniform Memory Access): процессоры объединены в группы с локальной памятью, но могут обращаться к памяти других групп с разной задержкой. Компромисс между SMP и MPP.
  • MPP: каждый узел полностью автономен. Масштабируемость практически неограничена (до тысяч узлов), но требуется специальное программирование для обмена данными.

Классификация MPP-систем

По типу узлов

  1. Гомогенные: все узлы идентичны по архитектуре и производительности. Упрощают управление и балансировку нагрузки.
  2. Гетерогенные: узлы различаются (например, часть — с GPU, часть — с CPU). Позволяют оптимизировать затраты, но сложнее в настройке.

По способу организации памяти

  • Shared-nothing (без разделения ресурсов): каждый узел имеет собственную память и диск. Наиболее распространённый тип MPP.
  • Shared-disk: узлы имеют собственную память, но используют общее дисковое хранилище (например, SAN). Упрощает управление данными, но создаёт узкое место на уровне дискового ввода-вывода.

По области применения

  • Вычислительные кластеры (HPC): для научных расчётов, симуляций, моделирования (например, суперкомпьютеры «Ломоносов» в МГУ, «Титан» в США).
  • Системы управления базами данных (MPP DBMS): для аналитики больших данных (Data Warehousing, OLAP). Примеры: Greenplum, ClickHouse, Vertica.
  • Системы потоковой обработки: для обработки данных в реальном времени (например, Apache Flink, Apache Spark Streaming).

Применение

Обработка больших данных (Big Data)

MPP-архитектура лежит в основе большинства современных систем анализа данных. Например, в СУБД Greenplum (разработана в США, используется в России) запрос SQL разбивается на фрагменты, которые выполняются параллельно на всех узлах. Это позволяет обрабатывать петабайты данных за секунды. Аналогичный подход используется в ClickHouse (разработана в России компанией Яндекс) — колоночной СУБД для аналитики в реальном времени.

Научные вычисления

Суперкомпьютеры, построенные по MPP-принципу, используются для моделирования климата, расчёта аэродинамики, геномных исследований. Например, российский суперкомпьютер «Кристофари» (Московский государственный университет) содержит более 1000 вычислительных узлов и достигает производительности 1,5 петафлопс.

Искусственный интеллект и машинное обучение

Обучение глубоких нейронных сетей требует параллельной обработки больших массивов данных. MPP-системы с GPU-ускорителями (например, кластеры на базе NVIDIA DGX) позволяют сократить время обучения с недель до часов.

Финансовый сектор

Банки и биржи используют MPP-системы для высокочастотной торговли (HFT) и анализа рисков. Например, платформа Kx Systems (kdb+) обрабатывает миллионы транзакций в секунду на кластерах из сотен узлов.

Преимущества и недостатки

Преимущества

  • Масштабируемость: добавление новых узлов линейно увеличивает производительность (до определённого предела, ограниченного сетью и программным обеспечением).
  • Отказоустойчивость: выход из строя одного узла не останавливает работу системы — нагрузка перераспределяется на другие узлы.
  • Экономичность: использование стандартного оборудования (commodity hardware) снижает затраты по сравнению с суперкомпьютерами на заказных чипах.
  • Гибкость: возможность комбинировать узлы с разными характеристиками (CPU, GPU, память).

Недостатки

  • Сложность программирования: разработка параллельных алгоритмов требует специальных навыков и учёта особенностей обмена данными.
  • Сетевые задержки: при большом количестве узлов (более 1000) накладные расходы на межсоединения могут снизить эффективность.
  • Балансировка нагрузки: неравномерное распределение данных или задач между узлами приводит к простою части системы (эффект «бутылочного горлышка»).
  • Управление данными: в системах с shared-nothing требуется тщательное проектирование схемы данных для минимизации перемещения данных между узлами.

Примеры MPP-систем

Коммерческие

  • Teradata — одна из первых MPP-СУБД, используется в крупных корпорациях для хранилищ данных.
  • Amazon Redshift — облачная MPP-СУБД от Amazon Web Services, поддерживает масштабирование до 128 узлов.
  • Oracle Exadata — интегрированная система (серверы + СУБД + хранилище) с MPP-архитектурой для баз данных Oracle.

Открытые и российские разработки

  • Greenplum — открытая MPP-СУБД на основе PostgreSQL, активно используется в России (например, в Сбербанке).
  • ClickHouse — российская колоночная СУБД, поддерживает параллельную обработку запросов на кластере из десятков узлов.
  • Apache Hadoop (экосистема) — фреймворк для распределённой обработки данных, использующий MPP-подход в компонентах Hive и Spark.
  • Yandex DataLens — сервис визуализации данных, который может работать поверх MPP-СУБД (например, ClickHouse).

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

  • Самый мощный суперкомпьютер мира (на 2023 год) — Frontier (США) — построен по MPP-архитектуре и содержит 8 730 112 процессоров (CPU + GPU). Его производительность превышает 1,1 экзафлопс.
  • В России крупнейшая MPP-система для обработки данных — кластер Yandex ClickHouse, который обрабатывает более 1 триллиона записей в сутки.
  • Термин «массово-параллельная обработка» ввёл в 1985 году американский учёный Дэвид Паттерсон (David Patterson) в контексте разработки архитектуры процессора RISC.

Источники

  • Patterson, D. A., & Hennessy, J. L. (2017). Computer Architecture: A Quantitative Approach. Morgan Kaufmann.
  • Stonebraker, M. (1986). The Case for Shared Nothing. IEEE Database Engineering Bulletin.
  • Документация Greenplum Database (версия 6.0). Pivotal Software.
  • Официальная документация ClickHouse. Яндекс.
  • Top500 List (2023). Frontier — Supercomputer.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →