Основные классы современных параллельных компьютеров
MPP, SMP, NUMA, PVP, кластеры.
Введение. Основным параметром классификации паралелльных компьютеров является наличие общей (SMP) или распределенной памяти (MPP). Нечто среднее между SMP и MPP представляют собой NUMA-архитектуры, где память физически распределена, но логически общедоступна. Кластерные системы являются более дешевым вариантом MPP. При поддержке команд обработки векторных данных говорят о векторно-конвейерных процессорах, которые, в свою очередь могут объединяться в PVP-системы с использованием общей или распределенной памяти. Все большую популярность приобретают идеи комбинирования различных архитектур в одной системе и построения неоднородных систем.
При организациях распределенных вычислений в глобальных сетях (Интернет) говорят о мета-компьютерах, которые, строго говоря, не представляют из себя параллельных архитектур.
Более подробно особенности всех перечисленных архитектур будут рассмотрены далее на этой странице, а также в описаниях конкретных компьютеров - представителей этих классов. Для каждого класса приводится следующая информация:
- краткое описание особенностей архитектуры,
- примеры конкретных компьютеров,
- перспективы масштабируемости,
- типичные особенности построения операционных систем,
- наиболее характерная модель программирования (хотя возможны и другие).
Примечание. На данной странице рассматриваются наиболее типичные классы архитектур современных параллельных компьютеров и супер-ЭВМ. (Не рассматриваются устаревшие и проектируемые архитектуры.)
Массивно-параллельные системы (MPP)
Архитектура |
Система состоит из однородных вычислительных узлов, включающих:
К системе могут быть добавлены специальные узлы ввода-вывода и управляющие узлы. Узлы связаны через некоторую коммуникационную среду (высокоскоростная сеть, коммутатор и т.п.) |
---|---|
Примеры | IBM RS/6000 SP2, Intel PARAGON/ASCI Red, CRAY T3E, Hitachi SR8000, транспьютерные системы Parsytec. |
Масштабируемость | Общее число процессоров в реальных системах достигает нескольких тысяч (ASCI Red, Blue Mountain). |
Операционная система |
Существуют два основных варианта:
|
Модель программирования | Программирование в рамках модели передачи сообщений ( MPI, PVM, BSPlib) |
Дополнительная информация:
- Лекция об архитектуре массивно-параллельных компьютеров, на примере CRAY T3D (Вл.В.Воеводин).
- Параллельные компьютеры с распределенной памятью (статья в ComputerWorld, #22, 1999 г.)
- An Overview of the Intel TFLOPS Supercomputer
Симметричные мультипроцессорные системы (SMP)
Архитектура | Система состоит из нескольких однородных процессоров и массива общей памяти (обычно из нескольких независимых блоков). Все процессоры имеют доступ к любой точке памяти с одинаковой скоростью. Процессоры подключены к памяти либо с помощью общей шины (базовые 2-4 процессорные SMP-сервера), либо с помощью crossbar-коммутатора (HP 9000). Аппаратно поддерживается когерентность кэшей. |
---|---|
Примеры | HP 9000 V-class, N-class; SMP-cервера и рабочие станции на базе процессоров Intel (IBM, HP, Compaq, Dell, ALR, Unisys, DG, Fujitsu и др.). |
Масштабируемость | Наличие общей памяти сильно упрощает взаимодействие процессоров между собой, однако накладывает сильные ограничения на их число - не более 32 в реальных системах. Для построения масштабируемых систем на базе SMP используются кластерные или NUMA-архитектуры. |
Операционная система | Вся система работает под управлением единой ОС (обычно UNIX-подобной, но для Intel-платформ поддерживается Windows NT). ОС автоматически (в процессе работы) распределяет процессы/нити по процессорам (scheduling), но иногда возможна и явная привязка. |
Модель программирования | Программирование в модели общей памяти. (POSIX threads, OpenMP). Для SMP-систем существуют сравнительно эффективные средства автоматического распараллеливания. |
Системы с неоднородным доступом к памяти (NUMA)
Архитектура | Система состоит из однородных базовых модулей (плат),
состоящих из небольшого числа процессоров и блока памяти.
Модули объединены с помощью высокоскоростного коммутатора.
Поддерживается единое адресное пространство,
аппаратно поддерживается доступ к удаленной памяти,
т.е. к памяти других модулей.
При этом доступ к локальной памяти в несколько раз
быстрее, чем к удаленной.
В случае, если аппаратно поддерживается когерентность кэшей во всей системе (обычно это так), говорят об архитектуре cc-NUMA (cache-coherent NUMA) |
---|---|
Примеры | HP HP 9000 V-class в SCA-конфигурациях, SGI Origin2000, Sun HPC 10000, IBM/Sequent NUMA-Q 2000, SNI RM600. |
Масштабируемость | Масштабируемость NUMA-систем ограничивается объемом адресного пространства, возможностями аппаратуры поддежки когерентности кэшей и возможностями операционной системы по управлению большим числом процессоров. На настоящий момент, максимальное число процессоров в NUMA-системах составляет 256 (Origin2000). |
Операционная система | Обычно вся система работает под управлением единой ОС, как в SMP. Но возможны также варианты динамического "подразделения" системы, когда отдельные "разделы" системы работают под управлением разных ОС (например, Windows NT и UNIX в NUMA-Q 2000). |
Модель программирования | Аналогично SMP. |
Параллельные векторные системы (PVP)
Архитектура | Основным признаком PVP-систем
является наличие специальных векторно-конвейерных процессоров,
в которых предусмотрены команды однотипной обработки векторов
независимых данных, эффективно выполняющиеся на конвейерных
функциональных устройствах.
Как правило, несколько таких процессоров (1-16) работают одновременно над общей памятью (аналогично SMP) в рамках многопроцессорных конфигураций. Несколько таких узлов могут быть объединены с помощью коммутатора (аналогично MPP). |
---|---|
Примеры | NEC SX-4/SX-5, линия векторно-конвейерных компьютеров CRAY: от CRAY-1, CRAY J90/T90, CRAY SV1, CRAY X1, серия Fujitsu VPP. |
Модель программирования | Эффективное программирование подразумевает векторизацию циклов (для достижения разумной производительности одного процессора) и их распараллеливание (для одновременной загрузки нескольких процессоров одним приложением). |
Дополнительная информация:
- Лекция об архитектуре векторно-конвейерных супер-ЭВМ CRAY C90. (Вл.В.Воеводин)
Кластерные системы
Архитектура |
Набор рабочих станций (или даже ПК) общего назначения,
используется в качестве дешевого варианта
массивно-параллельного компьютера.
Для связи узлов используется
одна из стандартных сетевых технологий (Fast/Gigabit Ethernet, Myrinet)
на базе шинной архитектуры или коммутатора.
При объединении в кластер компьютеров разной мощности или разной архитектуры, говорят о гетерогенных (неоднородных) кластерах. Узлы кластера могут одновременно использоваться в качестве пользовательских рабочих станций. В случае, когда это не нужно, узлы могут быть существенно облегчены и/или установлены в стойку. |
---|---|
Примеры | NT-кластер в NCSA, Beowulf-кластеры. |
Операционная система | Используются стандартные для рабочих станций ОС, чаще всего, свободно распространяемые - Linux/FreeBSD, вместе со специальными средствами поддержки параллельного программирования и распределения нагрузки. |
Модель программирования | Программирование, как правило, в рамках модели передачи сообщений (чаще всего - MPI). Дешевизна подобных систем оборачивается большими накладными расходами на взаимодействие параллельных процессов между собой, что сильно сужает потенциальный класс решаемых задач. |
Дополнительная информация:
- Что такое Beowulf? (технология организации параллельных вычислений на Linux-кластерах)
- Наиболее известные кластерные установки.
- SIMPLE: методология программирования вычислительных алгоритмов на кластерах из SMP-узлов (автор - David A. Bader).
Другие источники информации о классах параллельных компьютеров
- Статья "MIMD-компьютеры" на сервере ВЦ РАН.
© Лаборатория Параллельных информационных технологий НИВЦ МГУ