Мультипроцессорные вычислительные системы. SMP – однородный доступ к памяти (общая память)

15.02.1995 В. Пятенок

Однопроцессорная архитектура Модифицированная однопроцессорная архитектура SMP-архитектура Архитектура SMP-маршрутизатора, предложенная Wellfleet Обзор архитектуры Детали обработки пакетов Резюме Литература Маршрутизаторы в своем развитии использовали три различных архитектуры: однопроцессорную, модифицированную однопроцессорную и симметричную многопроцессорную. Все три разрабатывались с учетом требований поддержки высококритичных применений.

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

Однопроцессорная архитектура

Однопроцессорная архитектура использует несколько сетевых интерфейсных модулей - это позволяет добиться дополнительной гибкости в конфигурировании узлов. Сетевые интерфейсные модули соединяются с единым центральным процессором через общую системную шину. На этот единственный процессор ложится забота о выполнении всех задач обработки. А задачи эти при современном уровне развития корпоративных сетей сложны и многообразны: фильтрация и продвижение пакетов, необходимая модификация заголовков пакетов, обновления таблиц маршрутизации и сетевых адресов, интерпретация служебных управляющих пакетов, ответы на SNMP-запросы, формирование управляющих пакетов, предоставление иных специфических сервисов типа спуфинга (spoofing), то есть задания специальных фильтров, позволяющих добиться улучшенных характеристик безопасности и производительности сети.

Подобное традиционное архитектурное решение реализовать наиболее просто. Впрочем, несложно и предположить те ограничения, которым будут подвержены производительность и готовность такой системы.

Действительно, все пакеты от всех сетевых интерфейсов должны обрабатываться единственным центральным процессором. По мере того как добавляются дополнительные сетевые интерфейсы, производительность заметно снижается. Кроме того, каждый пакет должен дважды пропутешествовать по шине - от модуля-"источника" к процессору, а-затем от процессора к модулю-"приемнику". Пакет проделывает этот путь, даже если он предназначается тому же самому сетевому интерфейсу, с которого он поступил. Это также приводит к существенному падению производительности при увеличении числа модулей сетевых интерфейсов. Таким образом, налицо классическое "бутылочное горлышко".

Невелика и надежность. Если произойдет сбой центрального процессора, то нарушится работоспособность маршрутизатора в целом. Кроме того, для такой архитектуры невозможно реализовать "горячее восстановление" из резерва поврежденных элементов системы.

В современных реализациях этой архитектуры маршрутизаторов для того, чтобы разрешить ограничения производительности, как правило, используют достаточно мощный RISC-процессор и высокоскоростную системную шину. Это чисто силовая попытка решить проблему - увеличенная производительность за большие начальные вложения. Однако такие реализации не обеспечивают масштабирования производительности, а уровень их надежности наперед задан надежностью процессора.

Модифицированная однопроцессорная архитектура

Для того чтобы преодолеть часть указанных выше недостатков однопроцессорной архитектуры, придумана ее модификация. Нижележащая архитектура сохранена: интерфейсные модули соединены с единственным процессором через общую системную шину. Однако в каждый из сетевых интерфейсных модулей включается специальный периферийный процессор - для того, чтобы хотя бы частично разгрузить центральный процессор.

Периферийные процессоры - это, как правило, разрядно-модульные (bit-slace) или универсальные микропроцессоры, фильтрующие и маршрутизирующие пакеты, предназначающиеся сетевому интерфейсу того же модуля, с которого они и поступили в маршрутизатор. (К сожалению, во многих доступных в настоящий момент реализациях этого можно добиться в отношении пакетов только некоторых типов, таких как кадры Ethernet, но не IEEE 802.3.

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

Включение в архитектуру периферийных процессоров не повышает уровень готовности маршрутизатора в целом.

SMP-архитектура

Симметрично-многопроцессорная архитектура лишена недостатков, свойственных вышеупомянутым архитектурам. В этом случае вычислительные мощности полностью распределены между всеми сетевыми интерфейсными модулями.

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

Такая архитектура, безусловно, обеспечивает практически линейную (если пренебречь расходами на репликацию и пропускной способностью канала связи между модулями) масштабируемость. Это, в свою очередь, означает перспективу значительного расширения сети без заметного падения производительности. При необходимости требуется всего лишь добавить дополнительный сетевой интерфейсный модуль - ведь центральный процессор в этой архитектуре попросту отсутствует.

Все пакеты обрабатываются локальными процессорами. Внешние (то есть предназначенные другим модулям) пакеты передаются по каналу связи между процессорами только однажды. Это ведет к существенному снижению трафика внутри маршрутизатора.

Что касается готовности, система не будет выходить из строя, если сломается одиночный процессорный модуль. Эта поломка скажется только на тех сегментах сети, которые соединены с поврежденным процессорным модулем. Кроме того, поврежденный модуль может быть заменен на работоспособный модуль без выключения маршрутизатора и без всякого воздействия на все остальные модули.

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

В оставшейся части мы подробнее рассмотрим технические детали архитектуры SMP-маршрутизатора, разработанной компанией Wellfleet .

Архитектура SMP-маршрутизатора, предложенная Wellfleet

Компания Wellfleet , один из ведущих производителей маршрутизаторов и мостов, конечно же, не пожалела средств на оценку и тестирование различных архитектур маршрутизаторов, поддерживающих различные протоколы глобальных и локальных сетей над различными физическими носителями и рассчитанных на различные условия трафика. Итоги этих исследований были сформулированы в виде перечня требований, учитываемых при проектировании маршрутизаторов, предназначенных для построения корпоративных сетевых сред для высококритичных применений. Приведем часть из этих требований - те, которые на наш взгляд обосновывают использование многопроцессорной архитектуры.

1. Необходимость в масштабируемой производительности, высоком уровне готовности, гибкости конфигурирования диктует использование SMP-архитектуры.

2. Уровень требований многопротокольной маршрутизации к вычислительной мощности (особенно при использовании современных протоколов маршрутизации наподобие TCP/IP OSPF) может быть обеспечен только современными мощными 32-разрядными микропроцессорами. При этом, поскольку маршрутизация предполагает параллельное обслуживание большого числа сходных запросов, необходимо быстрое переключение между различными процессами, для чего требуется исключительно низкая задержка при переключении контекста, а также интегрированная кэш-память.

3. Для хранения поддерживающего протоколы и управляющего программного обеспечения, таблиц маршрутизации и адресов, статистической и другой информации нужна достаточно большая емкость памяти.

4. Чтобы обеспечить максимальную скорость передачи между сетями и обрабатывающими модулями маршрутизатора, требуются высокоскоростные сетевые интерфейсные контроллеры и контролллеры межпроцессорного взаимодействия с интегрированными возможностями прямого доступа к памяти (DMA - Direct Memory Access).

5. Минимизация задержек требует наличия обладающих высокой пропускной способностью 32-разрядных каналов данных и адресов для всех ресурсов.

6. Требования повышения уровня готовности включают распределение вычислительной мощности, избыточные подсистемы питания и, как дополнительную, но очень важную возможность, дублированные каналы межпроцессорного взаимодействия.

7. Необходимость охватить широкий спектр сетевых сред - от одиночного удаленного узла или сети рабочей группы до организации высокопроизводительной, обладающей высокой готовностью магистралью - требует использования масштабируемой многопроцессорной архитектуры.

Обзор архитектуры

На рисунке 2 схематически изображена симметрично-многопроцессорная архитектура, используемая во всех модульных маршрутизаторах, производимых компанией Wellfleet. Можно выделить три основных архитектурных элемента: модули связи, процессорные модули и межпроцессное соединение.

Модули связи обеспечивают физические сетевые интерфейсы, допускающие соединения с локальными и глобальными сетями практически любых типов. Каждый модуль связи напрямую присоединен к предназначенному именно ему процессорному модулю посредством интеллектуального интерфейса связи (ILI - Intelligent Link Interface). Пакеты, получаемые модулем связи, передаются в подключенный к нему процессорный модуль через собственное, прямое соединение. Процессор определяет, какому сетевому интерфейсу предназначаются эти пакеты, и либо перенаправляет их на другой сетевой интерфейс того же модуля связи, либо, по высокоскоростному межпроцессорному соединению, в другой процессорный модуль, который передаст этот пакет присоединенному к нему модулю связи.

Остановимся детальнее на структуре каждого из компонентов.

Процессорный модуль включает в себя:

Собственно центральный процессор;

Локальную память, в которой хранятся протоколы и таблицы маршрутизации, таблицы адресов и другая информация, локальным образом используемая ЦПУ;

Глобальную память, играющую роль буфера для "транзитных" пакетов данных, поступающих от модуля связи в присоединенный к нему процессорный модуль или от других процессорных модулей (глобальной она называется потому, что видима и доступна для всех процессорных модулей);

ОМА-процессор, обеспечивающий возможность прямого доступа к памяти при передаче пакетов между буферами глобальной памяти, размещенными в различных процессорных модулях;

Интерфейс связи, предоставляющий соединение с соответствующим модулем связи;

Внутренние каналы данных шириной 32 разряда, соединяющие все вышеперечисленные ресурсы и призванные обеспечить максимально возможную пропускную способность и минимальное время задержек; предусмотрены множественные каналы, что обеспечивает одновременное выполнение операций разными вычислительными устройствами (например, ЦПУ и DMA-процессором) и гарантирует отсутствие узких мест, замедляющих перенаправление и обработку пакетов.

Различные модели маршрутизаторов Wellfleet используют процессорные модули АСЕ (Advanced Communication Engine), основанные на процессорах Motorola 68020 или 68030, либо модули Fast Routing Engine (FRE), основанные на МС68040.

В состав модуля связи входят:

Коннекторы, обеспечивающие интерфейс со специфическими сетями (например, синхронный, Ethernet, Token Ring FDDI);

Контроллеры связи, передающие пакеты между физическим сетевым интерфейсом и глобальной памятью, используя DMA-канал; контроллеры связи также предназначены для конкретного типа сетевого интерфейса и способны передавать пакеты со скоростью, совпадающей со скоростью проволоки;

Фильтры (дополнительная возможность для модулей связей для FDDI и Ethernet), выполняющие предварительную фильтрацию входящих пакетов, сохраняя вычислительные ресурсы для содержательной обработки файлов.

В качестве канала межпроцессорной связи часто используется стандартная шина VMEbus, обеспечивающая совокупную пропускную способность 320 Мбит/сек.

В старших же моделях применяется разработанный самой компанией Wellfleet интерфейс Parallel Packet Express (РРХ) с полосой пропускания 1 Гбит/сек, использующий четыре независимых, обладающих избыточностью 256 Мбит/сек канала данных с динамическим распределением загрузки. Это обеспечивает высокую общую производительность и позволяет добиться того, что в архитектуре нет единой точки сбоя. Каждый процессорный модуль присоединен ко всем четырем каналам и имеет возможность выбрать любой из них. Конкретный канал выбирается случайно, для каждого пакета, что должно обеспечить равномерное распределение трафика между всеми доступными каналами. Если один из каналов данных PPX становится недоступным, загрузка автоматически распределяется между оставшимися.

Детали обработки пакетов

Поступающие пакеты получает, в зависимости от сети, тот или иной контроллер связи. Если в конфигурацию модуля связи включен дополнительный фильтр, часть пакетов отбрасывается, а другая часть принимается. Принятые пакеты помещаются контроллером связи в буфер глобальной памяти непосредственно присоединенного к нему процессорного модуля. Для быстрой передачи пакетов в каждый контроллер связи включен канал прямого доступа к памяти.

Поступив в глобальную память, пакеты извлекаются центральным процессором для маршрутизации. ЦПУ определяет выходной сетевой интерфейс, должным образом модифицирует пакет и возвращает его в глобальную память. Затем выполняется одно из двух действий:

1. Пакет перенаправляется в сетевой интерфейс непосредственно присоединенного к нему модуля. Контроллер связи выходного сетевого интерфейса получает от ЦПУ инструкции выбрать пакеты из глобальной памяти и отправить их в сеть.

2. Пакет перенаправляется в сетевой интерфейс другого модуля связи. DMA-процессор получает инструкции от ЦПУ отправить пакеты в другой процессорный модуль и загружает их по межпроцессорному соединению в глобальную память процессорного модуля, присоединенного к выходному сетевому интерфейсу. Контроллер связи выходного сетевого интерфейса выбирает пакеты из глобальной памяти и отправляет их в сеть.

Решения относительно маршрутизации принимаются ЦПУ независимо от друтих процессорных модулей. Каждый процессорный модуль поддерживает в своей локальной памяти независимую базу данных маршрутизации и адресов, обновляемую в тех случаях, когда модуль получает информацию об изменениях в таблицах маршрутизации или в адресах (в этом случае изменения рассылаются и во все остальные процессорные модули).

Одновременная работа контроллера связи, ЦПУ и DMA-процессора позволяет добиться общей высокой производительности. (Подчеркнем, что все это происходит в устройстве, где обработка распараллеливается по нескольким многопроцессорным модулям). Например, можно представить себе такую ситуацию, когда контроллер связи помещает пакеты в глобальную память, в то время как центральный процессор обновляет таблицу маршрутизации в локальной памяти, а DMA-процессор помещает пакет в межпроцессорное соединение.

Резюме

Сам по себе факт проникновения компьютерных технологий, разработанных для одной области применений, в другие, смежные, не нов. Однако каждый конкретный пример привлекает внимание специалистов. В рассмотренной в данной статье архитектуре маршрутизаторов, кроме идеи симметричной многопроцессорности, призванной обеспечить масштабируемую производительность и высокий уровень готовности, использованы также механизм дублированных каналов данных между процессорами (с теми же целями), а также идея репликации (или тиражирования) данных, применение которой более характерно для индустрии распределенных СУБД .

Литература

Symmetric Multiprocessor Architecture. Wellfleet Communications, 10/1993.

Г.Г. Барон, Г.М. Ладыженский. "Технология тиражирования данных в распределенных системах" , "Открытые системы", Весна 1994.

*) Компания Wellfleet осенью прошлого года объединилась с другим лидером сетевых технологий, SunOptics Communications. Объединение привело к созданию нового сетевого гиганта - компании Bay Networks (прим. ред.)



SMP архитектура - cимметричная многопроцессорная архитектура. Главной особенностью систем с архитектурой SMP является наличие общей физической памяти, разделяемой всеми процессорами.

SMP-система строится на основе высокоскоростной системной шины, к слотам которой подключаются функциональные блоки трех типов:

●процессоры (ЦП),

● оперативная память (ОП),

● подсистема ввода/вывода (I/O).

Память является способом передачи сообщений между процессорами. Все вычислительные устройства при обращении к ОП имеют равные права и одну и ту же адресацию для всех ячеек памяти. Последнее обстоятельство позволяет эффективно обмениваться данными с другими вычислительными устройствами. SMP-система работает под управлением единой ОС (либо UNIX-подобной, либо Windows). ОС автоматически распределяет процессы по процессорам, возможна и явная привязка. SMP-архитектура используется в cерверах и рабочих станциях на базе процессоров Intel, AMD, Sun, IBM, HP, и др.

Принципы организации:

SMP-система состоит из нескольких однородных процессоров и массива общей памяти. Каждая операция доступа к памяти интерпретируется как транзакция по шине процессоры-память. Слово "равноправный" означает, что каждый процессор может делать все, что любой другой. Каждый процессор имеет доступ ко всей памяти, может выполнять любую операцию ввода/вывода, прерывать другие процессоры и т.д. В SMP каждый процессор имеет по крайней мере одну собственную кэш-память.

Когерентность кэшей поддерживается аппаратными средствами.

Достоинства:

· Простота и универсальность для программирования. Архитектура SMP не накладывает ограничений на модель программирования, используемую при создании приложения: обычно используется модель параллельных ветвей, когда все процессоры работают абсолютно независимо друг от друга - однако, можно реализовать и модели, использующие межпроцессорный обмен. Использование общей памяти увеличивает скорость такого обмена, пользователь также имеет доступ сразу ко всему объему памяти.

· Легкость в эксплуатации. Как правило, SMP-системы используют систему охлаждения на воздушном кондиционировании, что облегчает их обслуживание.

· Относительно невысокая цена.

· Неявно производимая аппаратурой SMP пересылка данных между кэшами является наиболее быстрым и самым дешевым средством коммуникации в любой параллельной архитектуре общего назначения.

· Готовность. В симметричном мультипроцессоре отказ одного из компонентов не ведет к отказу системы, поскольку любой из процессоров в состоянии выполнять те же функции, что и другие.

Недостатки:

SMP-cистемы плохо масштабируемы:

1.Системная шина имеет ограниченную пропускную способность и ограниченное число слотов.

2.В каждый момент времени шина способна обрабатывать только одну транзакцию, вследствие чего возникают проблемы разрешения конфликтов при одновременном обращении нескольких процессоров к одним и тем же областям общей физической памяти.

В реальных системах эффективно можно использовать не более 8-16-32 процессоров.

Применение:

SMP часто применяется в науке, промышленности, бизнесе, где программное обеспечение специально разрабатывается для многопоточного выполнения. В то же время большинство потребительских продуктов, таких как текстовые редакторы и компьютерные игры, написаны так, что они не могут получить много пользы от SMP- систем. В случае игр это зачастую связано с тем, что оптимизация программы под SMP-системы приведёт к потере производительности при работе на однопроцессорных системах, которые занимают большую часть рынка.

Примеры компьютеров с SMP-архитектурой:

HP 9000 (до 32 процессоров), Sun HPC 100000 (до 64 проц.), Compaq AlphaServer (до 32 проц.), Sun SPARC Enterprise T5220
2.8. MPP архитектура. История развития. Основные принципы. Концепция, архитектура и характеристики суперкомпьютера Intel Paragon.

Массово-параллельная архитектура (Massive Parallel Processing) - класс архитектур параллельных вычислительных систем. Особенность архитектуры состоит в том, что память физически разделена. Система строится из отдельных узлов, содержащих процессор, локальный банк ОП, коммуникационные процессоры или сетевые адаптеры, иногда - жесткие диски и/или другие устройства ввода/вывода.

Доступ к банку ОП данного узла имеют только процессоры из этого же узла. Узлы соединяются специальными коммуникационными каналами. Пользователь может определить логический номер процессора, к которому он подключен, и организовать обмен сообщениями с другими процессорами. На машинах MPP используются два варианта работы операционной системы:

● В одном полноценная ОС работает только на управляющей машине, а на каждом узле функционирует сильно урезанный вариант ОС, обеспечивающий работу расположенной в нем ветви параллельного приложения.

● Во втором варианте на каждом модуле работает полноценная, чаще всего UNIX-подобная ОС, устанавливаемая отдельно.


5.2. Симметричная многопроцессорная архитектура SMP

SMP (symmetric multiprocessing ) – симметричная многопроцессорная архитектура. Главной особенностью систем с архитектурой SMP (рис.5.5) является наличие общей физической памяти, разделяемой всеми процессорами.

Рисунок 5.5 – Схематический вид SMP-архитектуры

Память служит, в частности, для передачи сообщений между процессорами, при этом все вычислительные устройства при обращении к ней имеют равные права и одну и ту же адресацию для всех ячеек памяти. Поэтому SMP-архитектура называется симметричной. Последнее обстоятельство позволяет очень эффективно обмениваться данными с другими вычислительными устройствами.

SMP-система строится на основе высокоскоростной системной шины (SGI PowerPath, Sun Gigaplane, DEC TurboLaser), к слотам которой подключаются функциональные блоки типов: процессоры (ЦП), подсистема ввода/вывода (I/O) и т. п. Для подсоединения к модулям I/O используются уже более медленные шины (PCI, VME64).

Наиболее известными SMP-системами являются SMP-cерверы и рабочие станции на базе процессоров Intel (IBM, HP, Compaq, Dell, ALR, Unisys, DG, Fujitsu и др.) Вся система работает под управлением единой ОС (обычно UNIX-подобной, но для Intel-платформ поддерживается Windows NT). ОС автоматически (в процессе работы) распределяет процессы по процессорам, но иногда возможна и явная привязка.

Основные преимущества SMP-систем:

- простота и универсальность для программирования . Архитектура SMP не накладывает ограничений на модель программирования, используемую при создании приложения: обычно используется модель параллельных ветвей, когда все процессоры работают независимо друг от друга. Однако можно реализовать и модели, использующие межпроцессорный обмен. Использование общей памяти увеличивает скорость такого обмена, пользователь также имеет доступ сразу ко всему объему памяти. Для SMP-систем существуют довольно эффективные средства автоматического распараллеливания;

- простота эксплуатации . Как правило, SMP-системы используют систему кондиционирования, основанную на воздушном охлаждении, что облегчает их техническое обслуживание;

- относительно невысокая цена .

Недостатки:

- системы с общей памятью плохо масштабируются .

Этот существенный недостаток SMP-систем не позволяет считать их по-настоящему перспективными. Причиной плохой масштабируемости является то, что в данный момент шина способна обрабатывать только одну транзакцию, вследствие чего возникают проблемы разрешения конфликтов при одновременном обращении нескольких процессоров к одним и тем же областям общей физической памяти.

В настоящее время конфликты могут происходить при наличии 8-24 процессоров. Все это очевидно препятствует увеличению производительности при увеличении числа процессоров и числа подключаемых пользователей. В реальных системах можно задействовать не более 32 процессоров. Для построения масштабируемых систем на базе SMP используются кластерные или NUMA-архитектуры. При работе с SMP-системами используют так называемую парадигму программирования с разделяемой памятью (shared memory paradigm).

Владислав Шаров

Говоря о многопроцессорных вычислительных системах, помимо производительности, необходимо назвать и другие их особенности. Прежде всего это необычные архитектурные решения, направленные на повышение производительности. Вообще говоря, понятие архитектуры высокопроизводительной системы достаточно широко, поскольку под архитектурой можно понимать и способ параллельной обработки данных, используемый в системе, и организацию памяти, и топологию связи между процессорами, и способ исполнения системой арифметических операций.

Мультипроцессорная обработка используется на больших ЭВМ уже более 30 лет. Подобные системы состоят из набора совместно используемых запоминающих устройств и нескольких центральных процессоров, работающих под управлением одной копии ОС. Современные архитектуры, как правило, состоят из нескольких однородных микропроцессоров и массива общей памяти. Все процессоры в системе имеют доступ к любой точке памяти (обычно через шину и/или коммутатор). За распараллеливание процессов между процессорами отвечает ОС. Стандарт де-факто для построения многопроцессорных серверов на базе процессоров Intel Itanium 2 - архитектура SMP ccNUMA (Symmetric MultiProcessing with cache coherent Non Uniform Memory Access).

До недавнего времени симметричность в SMP относилась к роли процессоров в работе ОС: имелось в виду, что все процессоры могут "видеть" всю память и способны выполнять любую задачу, которую им назначает ОС. С появлением технологий с неоднородным доступом к памяти - NUMA (Non-Uniform Memory Access) производителям компьютерного оборудования потребовалось провести различие между системами с поддержкой NUMA и другими серверными архитектурами. Вообще говоря, NUMA - это архитектура памяти, используемая в многопроцессорных системах, где время доступа зависит от местонахождения памяти. Все процессоры могут "видеть" всю память, но конкретный процессор работает с собственной локальной памятью гораздо быстрее, нежели с нелокальной, которая, в свою очередь, будет локальной для другого процессора или разделяется между несколькими процессорами. NUMA, как и SMP, позволяет объединить вычислительную мощность множества процессоров, каждый из которых обращается к общему пулу памяти. Однако в этом случае для связи процессоров друг с другом они организованы в небольшие группы, или узлы. Например, 16-процессорный сервер может содержать четыре узла по четыре процессора. Каждый узел имеет собственный пул памяти.

Поскольку в традиционных системах время доступа ко всем модулям памяти в серверах было однородным или "симметричным", то такие системы обозначались и как "память с однородным доступом" - UMA (Unified Memory Access), и как симметричные мультипроцессорные системы - SMP. Последний вариант получил более широкое распространение. С точки зрения ОС, системы NUMA "симметричны", поскольку все процессоры имеют равные права, но с точки зрения аппаратных характеристик их нельзя считать SMP-системами.

Базовая архитектура SMP

Ключевое понятие многопроцессорных архитектур - узел. Он представляет собой вычислительную систему, состоящую из одного или нескольких процессоров, имеющую оперативную память и систему ввода-вывода (рис. 1). Узел характеризуется тем, что на нем работает единственная копия ОС. Симметричный многопроцессорный (SMP) узел содержит два или более одинаковых и равноправных процессора. Все процессоры имеют одинаковый доступ к вычислительным ресурсам узла. В качестве базы для построения SMP-систем чаще всего используются три системных решения: магистральная шина, масштабируемое когерентное соединение и коммутатор.

Рис. 1. Архитектура SMP.

Самый простой и самый общий метод построения SMP-платформы - соединить процессоры и память с помощью шины. Положительная сторона этого решения состоит в том, что процессоры легко взаимодействуют как с памятью, так и между собой. Недостаток же в том, что по шине в каждый момент времени может передаваться только одно сообщение. Таким образом, именно шина становится потенциально узким местом.

На шине, используемой для серверов на основе процессоров Intel, каждый процессор может "следить" за любым другим и отслеживать запросы к памяти. Именно так реализуется когерентность кэш-памяти. Если один процессор обнаруживает, что другой обращается к памяти по какому-то из принадлежащих первому адресов (т. е. у него имеется самая свежая копия данных), то процессор отвечает на запрос и выгружает данные из своей кэш-памяти. При необходимости записать данные по адресу процессор запрашивает права на использование ресурса и оставляет их за собой до тех пор, пока он снова не выгрузит "устаревшие" данные обратно в память, или до тех пор, пока другой процессор не затребует эти права.

Известно, что в SMP-системе любой процесс может выполняться на любом процессоре, но повторный запуск отложенного ранее процесса на другом процессоре приводит к отрыву того от кэшированных данных, и новый процессор, включившийся в работу, должен будет работать со скоростью основной памяти до тех пор, пока процесс не наберет достаточно ссылок для перезагрузки данных в кэш-память данного процессора. Ответственность за смягчение остроты этой проблемы также ложится на ОС. Именно она должна следить за тем, какой процессор данный процесс использовал последним, и пытаться поддержать эту связь. Поддержание равновесия между этой процедурой и предотвращением простоя процессора - достаточно сложная задача. Если процесс переключается с одного процессора на другой, то производительность второго процессора будет страдать из-за промахов считывания информации, отсутствующей в кэш-памяти, до тех пор, пока он не загрузит данные процесса из оригинального процессора. ПО поддержания сходности процессов процессора смягчает эту ситуацию, пытаясь удерживать процесс на одном и том же процессоре.

Этот подход оказался очень успешным в случае четырехпроцессорных серверов, однако ему присущ ряд ограничений, которые не позволяют применять его в среде с большим числом обрабатываемых транзакций. Другое ограничение данного подхода - низкая готовность. Отказ одного из компонентов может сделать шину недоступной для других. Определить, какой именно компонент вышел из строя, очень сложно, в особенности если нельзя запустить ОС, и тогда вся система выводится из эксплуатации на период тестирования и ремонта. Конструкции на основе технологии ccNUMA и неблокируемого коммутатора используют компоненты, которые можно изолировать, продиагностировать и в некоторых случаях восстановить, при этом остальные составляющие системы продолжают поддерживать работу ОС и приложений.

Для создания 16- или 32-процессорных систем предназначена технология SCI - масштабируемое когерентное межсоединение (Scalable Coherent Interconnect). Несколько четырехпроцессорных системных плат соединяются при помощи SCI и конфигурируются как одна большая многопроцессорная система. Хотя на первый взгляд она напоминает локальную сеть, на самом деле это не так. SCI - это двоично-последовательное кольцо, работающее с высокой скоростью и с очень малым временем латентности. Система выглядит как кластер, но таковым не является. Выполняется только одна копия ОС, которая "видит" единую, непрерывную, большую память, распределенную на все четырехпроцессорные платы. С точки зрения ОС это SMP-система, поскольку все процессоры имеют равную ответственность. Но очевидно, что доступ процессора к индивидуальным модулям памяти и к кэшированным процессорами данным несимметричен. Доступ процессора к удаленной памяти занимает в несколько раз больше времени в сравнении с доступом к локально хранящимся данным, т. е. это системы с неоднородным доступом к памяти.

Архитектура NUMA-Q

Считается, что один из прорывов в компьютерных технологиях связан с компанией Sequent (которая в 1999 г. была куплена корпорацией IBM). История ее такова: в 1983 г. в Портленде (шт. Орегон, США) восемнадцать бывших сотрудников компании Intel под руководством Кейси Пауэлла организовали компанию Sequel. Она ориентировалась на создание вычислительных архитектур для обслуживания ИТ в самых трудоемких сферах работы с деловой информацией: в оперативной обработке транзакций, в системах поддержки принятия решений и деловых коммуникациях. В начале 80-х, когда самые трудные задачи решались на мэйнфреймах, Sequel поставила своей целью создать вычислительную платформу, которая существенно превосходила бы возможности однопроцессорных систем, но при этом строилась на самых распространенных и недорогих процессорах от Intel.

Компания Sequel, переименованная в 1987 г. в Sequent Computer Systems, реализовала первую SMP-версию ОС Unix, обладающую независимой от процессора архитектурой; а в мае 1987 г. анонсировала первую компьютерную систему Symmetry (Unix SMP), масштабируемую до 30 процессоров Intel. Первая ОС SMP Unix компании Sequent называлась DYNIX и представляла собой развитие BSD 4.2. В 1990 г. Sequent выпустила новую версию ОС для своих машин на основе Unix System V; эта версия получила название DYNIX/ptx. На требования увеличить надежность систем Sequent ответила созданием в 1992 г. кластеров для Unix. Кроме того, Sequent небезуспешно решала одну из главных проблем архитектуры SMP - преодоление барьера масштабируемости, подняв планку с помощью архитектуры NUMA почти на порядок.

NUMA уменьшает нагрузку на шину по сравнению с SMP, поскольку процессоры в узлах взаимодействуют друг с другом и со своей локальной оперативной памятью через отдельные шины. Кроме того, они могут обращаться к пулам памяти других узлов, хотя время доступа зависит от того, насколько эти узлы удалены друг от друга. Поэтому такую архитектуру часто называют архитектурой с распределенной разделяемой памятью. В NUMA может быть задействовано 256 и даже 512 процессоров.

Обеспечение когерентности

Несколько процессоров могут разделять доступ к одной и той же памяти, если им обеспечена широкая полоса пропускания за счет использования большой многоуровневой кэш-памяти. Поскольку процессоры одновременно работают с данными, хранящимися в единой памяти узла, в подобной архитектуре обязательно должен быть механизм поддержки когерентности данных. Когерентность данных означает, что в любой момент времени для каждого элемента данных во всей памяти узла существует только одно его значение, несмотря на то, что одновременно могут существовать несколько копий элемента данных, расположенных в разных видах памяти и обрабатываемых разными процессорами. Механизм когерентности должен следить за тем, чтобы операции с одним и тем же элементом данных выполнялись на разных процессорах последовательно, удаляя, в частности, устаревшие копии. В современных SMP-архитектурах когерентность реализуется аппаратными средствами.

Известны два основных класса протоколов когерентности кэш-памяти, один из которых строится на основе справочника (directory based). В этом случае информация о состоянии блока физической памяти содержится только в одном месте, называемом справочником (физически справочник может быть распределен по узлам системы). В протоколах наблюдения (snooping) каждая кэш-память, которая содержит копию данных некоторого блока физической памяти, имеет соответствующую копию служебной информации о ее состоянии. Централизованная система записей отсутствует. Обычно кэш-память расположена на общей (разделяемой) шине, и все ее контроллеры наблюдают за шиной (просматривают ее), чтобы определить, не содержат ли они копию соответствующего блока.

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

В отличие от классической архитектуры NUMA, при использовании кэш-когерентного доступа к неоднородной памяти - ccNUMA (cache coherent NUMA) все процессоры объединены в один узел (рис. 2), причем первый уровень иерархии памяти образует их кэш-память, а ccNUMA поддерживает когерентность внутри узла аппаратно. В системах ccNUMA распределенная память представляется единым адресным пространством. Не происходит никакого копирования страниц или данных. Нет программной передачи сообщений для синхронизации доступа. Есть просто единый массив памяти (хотя физически он состоит из отдельных частей). Аппаратная когерентность кэш-памяти означает, что не требуется никакого ПО для поддержки актуальности множества копий данных. Все это выполняется на аппаратном уровне так же, как в любом SMP-узле, с одним экземпляром ОС и множеством процессоров. В свою очередь NUMA-Q - это, по сути, реализация архитектуры ccNUMA компанией Sequent.

Рис. 2. Архитектура ccNUMA.

Элементарным блоком платформы NUMA-Q (рис. 3) служил квод (quad), в котором объединялись четыре процессора, блок разделяемой памяти и шина PCI с семью слотами. Несколько кводов можно было объединить для формирования более крупного одиночного SMP-узла с аппаратно-реализованной кэш-когерентностью. Кэш-когерентное соединение, устанавливаемое между шинами, называлось IQ-Link. Оно было практически полностью прозрачно для программ, подобно обычной кэш-памяти. В традиционном смысле память в каждом кводе не была локальной; скорее, это была одна треть адресного пространства физической памяти, имевшая собственный адресный диапазон. Адресная карта распределялась по памяти равномерно, при этом каждый квод содержал смежную часть адресного пространства. Например, если требуемый адрес находился за пределами диапазона локальной памяти квода, поиск распространялся на кэш-память IQ-Link, которая называлась удаленной. Доступ к ней осуществлялся с такой же скоростью, как и к локальной памяти квода. Если и в кэш-памяти IQ-Link данные не удавалось найти, отсылался запрос на шину IQ-Link. После того как требуемое значение загружалось из другого квода, оно сохранялось в удаленной кэш-памяти IQ-Link запрашивающего квода.


Рис. 3. Архитектура NUMA-Q.

CMP-архитектура

Корпорация Unisys (http://www.unisys.com) впервые обнародовала свои планы создания 32-процессорного сервера в 1997 г. А вот поддерживать и совершенствовать SMP-архитектуры на базе процессоров Intel компания начала еще в 1991 г. Ее фирменной разработкой стала СМР (Cellular MultiProcessing) - перестраиваемая симметрично-многопроцессорная архитектура, которая позволяла комбинировать традиционную мультипроцессорную архитектуру SMP и кластерные технологии.

Ячейки CMP - это процессорные элементы, называемые sub-pods, или сells. CMP проектировалась в расчете на 64-разрядный Itanium, однако задержки с выпуском этого процессора привели к тому, что первые версии CMP-серверов использовали 32-разрядный Pentium III Xeon. Одновременно Unisys позаботилась о возможном сосуществовании процессоров Xeon и Itanium в рамках одной CMP-системы. В настоящее время на базе CMP-архитектуры выпускается два семейства серверов ES7000 (рис. 4): Aries (32-разрядные процессоры) и Orion (64-разрядные).

Рис. 4. Сервер Unisys Orion 560.

Итак, в каждой процессорной ячейке CMP (рис. 5) установлено четыре процессора. Кроме имеющегося у каждого кристалла стандартной кэш-памяти 2-го уровня, в архитектуру элемента включена разделяемая между четырьмя процессорами кэш-память 3-го уровня TLC (Third Level Cache). Очевидно, что применение в CMP-серверах кэш-памяти 3-го уровня, имеющей большую емкость, способно существенно поднять производительность, особенно в случае бизнес-приложений, для которых характерен интенсивный обмен данными с оперативной памятью. Что касается оперативной памяти, то емкость блока MSU (Memory Storage Unit) наращивается блоками.

Рис. 5. Базовая архитектура CMP.

Устройство управления памятью, подсистема ввода-вывода и процессоры в процессорном элементе связаны между собой при помощи матричного коммутатора (crossbar), а не посредством традиционной системной шины. Технология коммутации, пришедшая из мира мэйнфреймов, уже давно применяется и в SMP-серверах как типичный архитектурный прием. Преимущество этой архитектуры перед шиной - устранение конфликтов на системной шине и соответственно отсутствие перегрузок.

Подсистема ввода-вывода в СМР основывается на стандартных интерфейсах PCI (PCI-X). Однако, чтобы повысить эффективность путем использования режима DMA, три шины PCI, входящие в состав процессорного элемента, связаны с коммутатором через специальный мост ввода-вывода DIB (Direct I/O Bridge). Каждая шина имеет несколько PCI-слотов.

Процессорный элемент представляет собой почти готовую SMP-систему, использующую матричный коммутатор вместо системной шины. Разработчики заложили в CMP уникальные особенности, обеспечивающие возможность статического и динамического парционирования (разбиения) SMP-сервера и приводящие к преобразованию всей SMP-системы в кластер, в свою очередь, построенный из SMP-серверов с числом процессоров, кратным четырем. Отметим, что в кластерах на базе CMP-систем возможно совместное использование оперативной памяти (shared memory), т. е. узлы могут взаимодействовать через общее поле оперативной памяти. Для повышения производительности предлагается использовать технику интерливинга (interleaving), когда байты 0-63 берутся из первого MSU, байты 64-127 - из второго и т. д. Выделение разделов в СМР предполагает, что в каждом из них может работать своя ОС.

Серверы серии ES7000 построены на основе монтируемой в стойку конструкции-ячейки высотой 4U (18 см), содержащей от четырех до восьми процессоров. Объединив до четырех ячеек, можно создать серверы с числом процессоров до 32. Все модели располагают специализированными сервисными процессорами для дистанционного управления и экземпляром программы Unisys Server Sentinel.

Архитектура NUMAFlex

Усилия корпорации SGI (http://www.sgi.com) по разработке собственной версии архитектуры ccNUMA воплотились в серверы семейства Origin 3x00. Эти компьютеры, построенные на базе технологии NUMAflex, имеют архитектуру памяти NUMA 3 (поскольку это уже третье поколение подобной архитектуры). Благодаря модульной конструкции серверы SGI легко масштабируются под конкретную задачу или приложение с использованием набора базовых модулей, при этом вычислительная мощность сервера наращивается от двух до 512 процессоров.

Напоминающая по своему принципу детский конструктор, модульная архитектура NUMAflex позволяет отказаться от обычной практики покупки высокопроизводительных серверов с заведомым запасом мощности. Теперь пользователи могут расширять и модернизировать в своих системах только необходимые элементы или добавлять новые технологии по мере их появления. Благодаря NUMAflex каждый модуль системы наделяется своей конкретной функцией и может быть через высокоскоростное соединение связан с другими модулями разных типов, образуя единую конфигурацию. В зависимости от конфигурации одни и те же модули можно использовать для последующей модернизации или повышения производительности.

NUMAflex действительно отличается особой гибкостью при построении различных конфигураций системы и ее изменении "на лету", в процессе функционирования. В NUMAflex реализована возможность разбиения всей системы ccNUMA на разделы (партиции, или домены), которые также представляют собой ccNUMA- или SMP-компьютеры. Деление на разделы позволяет преображать систему ccNUMA в кластерную структуру. Узлами этого кластера могут быть опять-таки ccNUMA-cерверы.

К числу основных преимуществ архитектуры NUMAflex следует отнести отказ от использования больших системных плат, характерных для систем с множеством процессоров. Это не только удешевляет конструкцию, но и повышает ее общую надежность, поскольку устраняет системную шину как единую точку сбоя для относительно большого числа процессоров.

Архитектура NUMAflex строится на базе модулей семи различных типов, которые называются "кирпичами" (brick): C-brick - процессорный модуль, I-brick - модуль базового ввода-вывода, R-brick - коммутационный модуль, P-brick - модуль расширения PCI, D-brick - дисковый модуль, X-brick - расширение XIO для высокопроизводительного ввода-вывода и G-brick - графический модуль (InfiniteReality). "Кирпичи" снабжены собственными источниками питания, что повышает отказоустойчивость системы в целом. Они помещаются в стандартную стойку, причем для небольших систем рекомендуется конструктив 17U.

Один из важнейших компонентов архитектуры NUMA 3 - специализированная микросхема Bedrock. Этот матричный коммутатор с восемью входами и шестью выходами действует как контроллер между процессорами и локальной и удаленной памятью. Кроме того, он предоставляет процессору канал в систему ввода-вывода. Отметим также, что восьмипортовый высокопроизводительный матричный коммутатор находится в узле маршрутизатора.

В блоке питания размещается от трех до шести распределенных источников питания с горячей заменой, обеспечивающих напряжение 48 В для C-, I-, P-, X- и R-кирпичей. Источники всегда устанавливаются в избыточной конфигурации N+1, чтобы никакой индивидуальный отказ не затронул работу сервера в целом.

Высокая гибкость архитектуры NUMAflex, обусловленная применением заменяемых модулей, позволяет строить различные конфигурации и сохраняет инвестиции пользователя при модернизации. Приобретаются только те "кирпичи", которые действительно необходимы, и уже из них складывается компьютер нужной конфигурации.

Отметим также, что в системах Origin 3x00 с 512 процессорами можно выделить 32 раздела. Минимальный домен должен содержать один вычислительный модуль, включающий два или четыре процессора. Каждая партиция имеет собственные средства ввода-вывода, свой IP-адрес и работает под управлением собственной версии ОС. Для обеспечения связи между разделами-узлами кластера используется NUMAlink 3 - стандартное соединение, которое дает гораздо более высокую пропускную способность и более низкие задержки, чем традиционные каналы связи между узлами кластеров. При разбиении сервера NUMAflex на разделы с переходом к кластерной структуре можно построить систему высокой доступности, причем от обычного кластера этого типа она будет отличаться высокой производительностью каналов, соединяющих узлы. Благодаря использованию доменов обеспечивается эффективное управление рабочей нагрузкой, т. е. разделение ресурсов между коллективами пользователей или группами задач. Кроме того, допускается модернизация ОС при одновременном продолжении эксплуатации текущей версии. Повышение отказоустойчивости происходит за счет устранения общих точек сбоя и образования кластеров высокой доступности.

Концепция FAME

Концепция FAME (Flexible Architecture for Multiple Environments), предложенная корпорацией Bull (http://www.bull.com), позволяет с помощью высокоскоростных коммутаторов создавать SMP-системы и строить кластеры с архитектурой ссNUMA. Специалисты Bull оптимизировали архитектуру NUMA для построения больших SMP-систем из блоков QBB (Quad Brick Block) с четырьмя процессорами Intel Itanium 2 и отдельной памятью. Кроме модулей QBB, в систему включены модули ввода-вывода IOB (Input Output Boxes). Такой набор компонентов обеспечивает модульность за счет комбинирования процессоров и памяти и ввода-вывода, что позволяет строить как простейшие системы начального уровня, так и объединенную архитектуру самой высокой мощности с помощью репликации и межсоединений.

Описанная выше конструкция основана на использовании инженерами Bull высокоскоростных межсоединений и микросхемы FSS (FAME Scalability Switch), которая обеспечивает для каждого процессора доступ к вводу-выводу и согласованное обращение к общей памяти (объем последней может достигать 256 Гбайт). Заметим, что эта память образуется путем объединения модулей памяти каждого QBB.

Устройство FSS, в производстве которого используется 0,18-мкм технология КМОП с медными межсоединениями, представляет собой кристалл со стороной 18 м. Он состоит из 60 млн транзисторов и имеет 1520 контактов ввода-вывода, что, безусловно, делает FSS одной из самых сложных микросхем. Устройство FSS обеспечивает единство информации в масштабах всей системы, независимо от того, где находится эта информация - в основной памяти или скопирована в кэш-память процессоров. Таким образом, FSS позволяет построить большую многопроцессорную систему с единым адресным пространством. FSS также оптимизирует трафик между процессорами и синхронизирует передачу данных внутри сервера.

Таким образом, 32-процессорная система состоит из модулей, каждый из которых содержит два FSS - для защиты от сбоев и повышения пропускной способности, до четырех QBB и двух блоков ввода-вывода (IOB). Модули связаны между собой за счет соединения FSS каждого модуля через четыре канала XSP (eXtended Scalability Port) с тактовой частотой 2,5 ГГц и общей пропускной способностью свыше 25 Гбайт/с. Пропускная способность памяти обеспечивается за счет агрегирования контроллеров памяти SNC (Scalability Node Controller), установленных на каждом четырехпроцессорном блоке, - пропускная способность памяти у каждого SNC равна 6,4 Гбайт/с (до 25 Гбайт/с для всех его интерфейсов). В максимальной конфигурации архитектура FAME обеспечивает пропускную способность памяти свыше 50 Гбайт/с.

Особое внимание было уделено оптимизации задержек доступа к памяти за счет эффективной организации фильтрации трафика согласования содержания кэш-памяти. В результате удалось значительно уменьшить трафик внутри QBB. Так называемый коэффициент NUMA - обычно самое слабое звено в системах, состоящих из "кирпичиков", - также значительно улучшился. Он равен 1:2:3 (время доступа к памяти в том же QBB, в другом QBB того же модуля и QBB в другом модуле соответственно), поэтому архитектура FAME обеспечивает высокую производительность даже в случае ПО, которое не было специально настроено для NUMA.

Подсистема ввода-вывода FAME разрабатывалась с целью оптимизировать доступ к данным и сети. Использование стандартных доступных на рынке компонентов и мощных функций коммутации позволило легко интегрировать новейшие технологии. Система была настроена для получения производительности ввода-вывода, которая соответствовала бы вычислительной мощности. При этом четверть пропускной способности FSS выделяется для ввода-вывода. Будучи архитектурой для больших корпоративных систем, FAME реализует достаточную пропускную способность с несколькими быстрыми шинами PCI-X (восемь на один IOB), что обеспечивает работу высокоскоростных контроллеров (например, FCS/Fibre Channel 2 Гбит/с) без интерференции и с улучшенным исправлением ошибок. Использование сетей хранения данных SAN обеспечивает использование резервных каналов для эффективной балансировки нагрузки подсистемы ввода-вывода. Более того, подсистема ввода-вывода обеспечивает очень высокую масштабируемость и производительность: пиковую пропускную способность ввода-вывода до 6 Гбит/с, в установившемся режиме - 2 Гбит/с, 250-300 тыс. операций ввода-вывода в секунду.

Все периферийные и коммуникационные устройства соединяются с IOB через платы PCI-X. Архитектура FAME включает сеть SAN, которую могут использовать несколько серверов. Централизованное администрирование обеспечивает единый механизм реконфигурирования доменов и их путей доступа к системе хранения. Поэтому при перемещении набора ресурсов (например, два QBB и один IOB) из одного домена в другой необходимо выполнить синхронизирующую реконфигурацию сети межсоединений, используя FSS и сеть Fibre Channel, обеспечивающую доступ к системам хранения. Эта операция выполняется полностью автоматически.

Самый мощный сервер G-Scale

Серверы компании Kraftway (http://www.kraftway.ru) G-Scale 6008, 6016 и 6032 созданы на базе процессоров Intel Itanium 2 и предназначены для высокопроизводительных вычислений, исполнения критически важных бизнес-приложений и создания устойчивых к сбоям кластерных систем. Они обладают оптимальным соотношением цена/производительность, а также легко масштабируются, обеспечивая защиту инвестиций.

В прошлом году компания Kraftway, единственный отечественный производитель серверных систем с числом процессоров более четырех, расширила модельный ряд своего флагманского семейства G-Scale за счет сервера Kraftway G-Scale 6032, содержащего до 32 процессоров Intel Itanium 2.

Сервер Kraftway G-Scale.

В семейство серверов Kraftway G-Scale 60хх входят многопроцессорные серверы на базе процессоров Intel Itanium 2. Модель Kraftway G-Scale 6032 - самая производительная на сегодняшний день в данной линейке. Помимо двукратного увеличения числа процессоров, в два раза вырос и максимальный объем оперативной памяти (до 256 Гбайт), а размещение всего приложения заказчика в оперативной памяти может дать многократное ускорение его выполнения.

Системы Kraftway G-Scale 60xx позволяют создавать надежные, отказоустойчивые решения, сочетающие в себе все преимущества открытой архитектуры и улучшающие возврат инвестиций. Технические параметры серверов Kraftway G-Scale 60xx позволяют применять их для консолидации приложений, работы со сверхбольшими базами данных, выполнения ресурсоемких мультимедиа-приложений и ПО для систем безопасности.

Обеспечивая огромную вычислительную мощность в сочетании с высокой пропускной способностью, они также с успехом могут служить для научных и технических приложений, особенно для задач, требующих высокой производительности от каждого узла кластера или Grid-архитектуры.

Гибкая архитектура Kraftway G-Scale позволяет конфигурировать сервер таким образом, что он превращается в серверную ферму в одном корпусе. Это стало возможным благодаря технологии аппаратного разделения ресурсов. В зависимости от нагрузки система Kraftway G-Scale 6032 может быть разделена на несколько (от двух до четырех) независимых серверов, каждый из которых выполняет свое приложение. При изменении нагрузки администратор легко перераспределяет аппаратные ресурсы, решая стоящие перед предприятием задачи оптимальными средствами.

Серверы Kraftway G-Scale работают под управлением 64-разрядных версий наиболее распространенных серверных ОС Microsoft Windows и Linux.

Для MIMD-систем в настоящее время общепризнанна классификация, основанная на используемых способах организации оперативной памяти в этих системах. По этой классификации, прежде всего, различают мультипроцессорные вычислительные системы (или мультипроцессоры) или вычислительные системы с разделяемой памятью (multiprocessors, common memory systems, shared-memory systems) и мультикомпьютерные вычислительные системы (мультикомпьютеры) или вычислительные системы с распределенной памятью (multicomputers, distributed memory systems). Структура мультипроцессорной и мультикомпьютерной систем приведена рис. 1, где - процессор, - модуль памяти.

Рис. 1. а) - структура мультипроцессора; б) – структура мультикомпьютера.

Мультипроцессоры.

В мультипроцессорах адресное пространство всех процессоров является единым. Это значит, что если в программах нескольких процессоров мультипроцессора встречается одна и та же переменная, то для получения или изменения значения этой переменной эти процессоры будут обращаться в одну физическую ячейку общей памяти. Это обстоятельство имеет как положительные, так и отрицательные последствия.

С одной стороны, не нужно физически перемещать данные между коммутирующими программами, что исключает затраты времени на межпроцессорный обмен.

С другой стороны, так как одновременное обращение нескольких процессоров к общим данным может привести к получению неверных результатов, необходимы системы синхронизации параллельных процессов и обеспечения когерентности памяти. Поскольку процессорам необходимо очень часто обращаться к общей памяти, требования к пропускной способности коммуникационной среды чрезвычайно высоки.

Последнее обстоятельство ограничивает число процессоров в мультипроцессорах несколькими десятками. Остроту проблемы доступа к общей памяти частично удается снять разделением памяти на блоки, которые позволяют распараллелить обращения к памяти от различных процессоров.

Отметим еще одно преимущество мультипроцессоров – мультипроцессорная система функционирует под управлением единственной копией операционной системы (обычно, UNIX-подобной) и не требует индивидуальной настройки каждого процессорного узла.

Однородные мультипроцессоры с равноправным (симметричным) доступом к общей оперативной памяти принято называть SMP-системами (системами с симметричной мультипроцессорной архитектурой). SMP-системы появились как альтернатива дорогим мультипроцессорным системам на базе векторно-конвейерных процессоров и векторно-параллельных процессоров (см. Рис.2).


Мультикомпьютеры.

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

Каждый процессор в мультикомпьютере имеет независимое адресное пространство. Поэтому наличие переменной с одним и тем же именем в программах разных процессоров, приводит к обращению к физически разным ячейкам собственной памяти этих процессоров. Это обстоятельство требует физического перемещения данных между коммутирующими программами в разных процессорах. Чаще всего основная часть обращений производится каждым процессором к собственной памяти. Поэтому требования к коммутационной среде ослабляются. В результате число процессоров в мультикомпьютерных системах может достигать нескольких тысяч, десятков тысяч и даже сотен тысяч.

Пиковая производительность крупнейших систем с общей памятью ниже пиковой производительности крупнейших систем с распределенной памятью; стоимость систем с общей памятью выше стоимости аналогичных по производительности систем с распределенной памятью.

Однородные мультикомпьютеры с распределенной памятью называются вычислительными системами с массивно-параллельной архитектурой (MPP-системами) - см. рис.2.

Нечто среднее между SMP-системами и MPP-системами представляют собой NUMA-системы.


Кластерные системы (вычислительные кластеры).

Кластерные системы (вычислительные кластеры) представляют собой более дешевый вариант MPP-систем. Вычислительный кластер состоит из совокупности персональных компьютеров или рабочих станций), объединенных локальной сетью в качестве коммуникационной среды. Детально вычислительные кластеры рассмотрены позже.

Рис. 2. Классификация мультипроцессоров и мультикомпьютеров.

SMP-системы

Все процессоры SMP-системы имеют симметричный доступ к памяти, т.е. память SMP-системы представляет собой UMA-память. Под симметричностью понимается следующее: равные права всех процессоров на доступ к памяти; одна и та же адресация для всех элементов памяти; равное время доступа всех процессоров системы к памяти (без учета взаимных блокировок).

Общая структура SMP-системы приведена на рис. 3. Коммуникационная среда SMP-системы строится на основе какой-либо высокоскоростной системной шины или высокоскоростного коммутатора. Кроме одинаковых процессоров и общей памяти M к этой же шине или коммутатору подключаются устройства ввода-вывода.

За кажущейся простотой SMP-систем скрываются значительные проблемы, связанные в основном с оперативной памятью. Дело в том, что в настоящее время скорость работы оперативной памяти значительно отстает от скорости работы процессора. Для того чтобы сгладить этот разрыв, современные процессоры снабжаются высокоскоростной буферной памятью (кэш-памятью). Скорость доступа к этой памяти в несколько десятков раз превышает скорость доступа к основной памяти процессора. Однако наличие кэш-памяти нарушается принцип равноправного доступа к любой точке памяти, поскольку данные, находящиеся в кэш-памяти одного процессора, недоступны для других процессоров. Поэтому после каждой модификации копии переменной, находящейся в кэш-памяти какого-либо процессора, необходимо производить синхронную модификацию самой этой переменной, расположенной в основной памяти. В современных SMP-системах когерентность кэш-памяти поддерживается аппаратно или операционной системой.

Рис. 3. Общая структура SMP-системы

Наиболее известными SMP-системами являются SMP-cерверы и рабочие станции IBM, HP, Compaq, Dell, Fujitsu и др. SMP-система функционирует под управлением единой операционной системой (чаще всего – UNIX и подобной ей).

Из-за ограниченной пропускной способности коммуникационной среды SMP-системы плохо масштабируются. В настоящее время в реальных системах используется не более нескольких десятков процессоров.

Известным неприятным свойством SMP-систем является то, что их стоимость растет быстрее, чем производительность при увеличении числа процессоров в системе.

MPP-системы.

MPP-системы строится из процессорных узлов, содержащих процессор, локальный блок оперативной памяти, коммуникационный процессор или сетевой адаптер, иногда - жесткие диски и/или другие устройства ввода/вывода. По сути, такие модули представляют собой полнофункциональные компьютеры (см. рис. 4.). Доступ к блоку оперативной памяти данного модуля имеет только процессор этого же модуля. Модули взаимодействуют между собой через некоторую коммуникационную среду. Используются два варианта работы операционной системы на MPP-системах. В одном варианте полноценная операционная система функционирует только на управляющей ЭВМ, а на каждом отдельном модуле работает сильно урезанный вариант операционной системы, поддерживающий только базовые функции ядра операционной системы. Во втором варианте на каждом модуле работает полноценная UNIX-подобная операционная система. Заметим, что необходимость наличия (в том или ином виде) на каждом процессоре MPP-системы операционной системы, позволяет использовать только ограниченный объем памяти каждого из процессоров.

По сравнению с SMP-системами, архитектура MPP-системы устраняет одновременно как проблему конфликтов при обращении к памяти, так и проблему когерентности кэш-памяти.

Главным преимуществом MPP-систем является хорошая масштабируемость. Так супер-ЭВМ серии CRAY T3E, способны масштабироваться до 2048 процессоров. Практически все рекорды по производительности на сегодняшний день установлены именно на MPP-системах, состоящих из нескольких тысяч процессоров.

Рис. 4. Общая структура MPP-системы.

С другой стороны, отсутствие общей памяти заметно снижает скорость межпроцессорного обмена в MPP-системах. Это обстоятельство для MPP-систем выводит на первый план проблему эффективности коммуникационной среды.

Кроме того, в MPP-системах требуется специальная техника программирования для реализации обмена данными между процессорами. Этим объясняется высокая цена программного обеспечения для MPP-систем. Этим же объясняется то, что написание эффективных параллельных программ для MPP-систем представляет собой более сложную задачу, чем написание таких же программ для SMP-систем. Для широкого круга задач, для которые известны хорошо зарекомендовавшие себя последовательные алгоритмы, не удается построить эффективные параллельные алгоритмы для MPP-систем.

NUMA-системы.

Логически общий доступ к данным может быть обеспечен и при физически распределенной памяти. При этом расстояние между различными процессорами и различными элементами памяти, вообще говоря, различно и длительность доступа различных процессоров к различным элементам памяти различна. Т.е. память таких систем представляет собой NUMA-память.

NUMA-система обычно строится на основе однородных процессорных узлов, состоящих из небольшого числа процессоров и блока памяти. Модули объединены с помощью некоторой высокоскоростной коммуникационной среды (см. рис. 5). Поддерживается единое адресное пространство, аппаратно поддерживается доступ к удаленной памяти, т.е. к памяти других модулей. При этом доступ к локальной памяти осуществляется в несколько раз быстрее, чем к удаленной. По существу, NUMA-система представляет собой MPP-систему, где в качестве отдельных вычислительных элементов используются SMP-узлы.

Среди NUMA-систем выделяют следующие типы систем:

  • COMA-системы , в которых в качестве оперативной памяти используется только локальная кэш-память процессоров (cache-only memory architecture - COMA);
  • CC-NUMA-системы , в которых аппаратно обеспечивается когерентность локальной кэш-памяти разных процессоров (cache-coherent NUMA - CC-NUMA);
  • NCC-NUMA-системы , в которых аппаратно не поддерживается когерентность локальной КЭШ памяти разных процессоров (non-cache coherent NUMA - NCC-NUMA). К данному типу относится, например, система Cray T3E.

Рис. 5. Общая структура NUMA-системы.

Логическая общедоступность памяти в NUMA-системах, с одной стороны, позволяет работать с единым адресным пространством, а, с другой стороны, позволяет достаточно просто обеспечить высокую масштабируемость системы. Данная технология позволяет в настоящее время создавать системы, содержащие до нескольких сот процессоров.

NUMA-системы серийно производятся многими компьютерными фирмами как многопроцессорные серверы и прочно удерживают лидерство в классе малых суперкомпьютеров.