Мультипроцессорные вычислительные системы. Архитектурные решения многопроцессорных систем

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 (прим. ред.)



UMA – Uniform Memory Access

5. SMP-архитектура используется в cерверах и РС на базе процессоров Intel, AMD, Sun, IBM, HP

(+) : простота, «отработанность» базовых принципов

(-) : весь обмен м/д процессором и памятью осущ. по 1 шине – узкое горлышко арх-ры – ограничение производительности, масштабируемости.

Пример:

MPP – архитектура: Massive parallel processing

Система с массовым параллелизмом. В основе лежал транспьютер – мощный универсальный процессор, особенностью которого было наличие 4 линков (коммуникационные каналы связи). Каждый линк состоит из двух частей, служащих для передачи информации в противоположных направлениях, и используется для соединения транспьютеров между собой и подключения внешних устройств. Архитектура: множество узлов, каждые узел – ОП+ЦП

Классическая МРР-архитектура: каждый узел соединен с 4 узлами по каналу «точка-точка».

Пример: Intel Peragon

Кластерная архитектура

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

Типы кластеров

  1. Системы высокой надежности/готовности (High Availability Systems, HA).
  2. Системы для высокопроизводительных вычислений (High Performance, HP, Compute clusters).
  3. Многопоточные системы.
  4. Load-balancing clusters. (распределение вычислительной нагрузки)

Пример: архитектура кластера theHIVE

5. NUMA архитектура Non Uniform Memory Access – неоднородный доступ к памяти

Каждый процессор имеет доступ к своей и к чужой памяти (для доступа в чужую память используется коммутационная сеть или даже проц чужого узла). Доступ к памяти чужого узла может поддерживаться аппаратно: спец. контроллеры.



- : дорого, плохая масштабируемость.

Сейчас: NUMA осущ доступ к чужой памяти программно.

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

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

ОП физически распределена, но логически общедоступна.

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

Примеры конкретных реализаций: cc-NUMA, СОМА, NUMA-Q

Пример: HP Integrity SuperDome

Упрощенные блок-схемы SMP (а) и MPP (б)

  1. Пять основных архитектур высокопроизводительных ВС, их краткая характеристика, примеры. Сравнение кластерной архитектуры и NUMA.

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

  1. SMP архитектура. Принципы организации. Достоинства, недостатки. Масштабируемость в «узком» и «широком» смысле. Область применения, примеры ВС на SMP.

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

1. SMP-система строится на основе высокоскоростной системной шины, к слотам которой подключаются функциональные блоки трех типов: процессоры (ЦП), оперативная память (ОП), подсистема ввода/вывода (I/O).

2. Память является способом передачи сообщений между процессорами.

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



4. Последнее обстоятельство позволяет очень эффективно обмениваться данными с другими вычислительными устройствами.

5. SMP используется в cерверах и рабочих станциях на базе процессоров Intel, AMD, Sun, IBM, HP.

6. SMP-система работает под управлением единой ОС (либо UNIX-подобной, либо Windows). ОС автоматически (в процессе работы) распределяет процессы по процессорам, но иногда возможна и явная привязка.

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

SMP система состоит из нескольких однородных процессоров и массива общей памяти.

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

Каждая операция доступа к памяти интерпретируется как транзакция по шине процессоры-память.

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

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

Все остальное - в одном экземпляре: одна память, одна подсистема ввода/вывода, одна операционная система.

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

Масштабируемость:

В «узком» смысле: возможность подключения аппаратных средств в некоторых пределах (процессоры, память, интерфейсы).

В «широком» смысле: линейный рост показателя производительности при увеличении аппаратных средств.

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

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

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

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

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

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

Недостатки:

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

1. Системная шина имеет ограниченную (хоть и высокую) пропускную способность и ограниченное число слотов, так называемое «узкое горлышко».

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

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

Область применения: для работы с банковскими приложениями

Пример: Архитектура Sun Fire T2000. Архитектура UltraSPARC T1.

  1. SMP архитектура. Совершенствование и модификация SMP архитектуры. SMP в современных многоядерных процессорах. Когерентность КЭШа.

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

Совершенствование и модификация SMP:

Пример: Архитектура QBB серверных систем серии GS DEC

С целью увеличения производительности шины произведена попытка убрать шину, но оставить общий доступ к памяти --> переход и замена общей шины локальным коммутатором (или системой коммутаторов): каждый процессор в каждый момент времени скоммутирован с 4 банками памяти.

Каждый проц работает с каким-то банком памяти,

Переключается на другой банк памяти

Начинает работу с другим банком памяти.

Классификация архитектур по параллельной обработке данных

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

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

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

1) SISD (Single Instruction Single Data)2) MISD (Multiple Instruction Single Data)3) SIMD (Single Instruction Multiple Data)4) MIMD (Multiple Instruction Multiple Data)

SISD (single instruction stream / single data stream) – одиночный поток команд и одиночный поток данных. К этому классу относятся последовательные компьютерные системы, которые имеют один центральный процессор, способный обрабатывать только один поток последовательно исполняемых инструкций. В настоящее время практически все высокопроизводительные системы имеют более одного центрального процессора, однако каждый из них выполняет несвязанные потоки инструкций, что делает такие системы комплексами SISD-систем, действующих на разных пространствах данных. Для увеличения скорости обработки команд и скорости выполнения арифметических операций может применяться конвейерная обработка. В случае векторных систем векторный поток данных следует рассматривать как поток из одиночных неделимых векторов. Примерами компьютеров с архитектурой SISD могут служить большинство рабочих станций Compaq, Hewlett-Packard и Sun Microsystems.

MISD (multiple instruction stream / single data stream) – множественный поток команд и одиночный поток данных. Теоретически в этом типе машин множество инструкций должно выполняться над единственным потоком данных. До сих пор ни одной реальной машины, попадающей в данный класс, создано не было. В качестве аналога работы такой системы, по-видимому, можно рассматривать работу банка. С любого терминала можно подать команду и что-то сделать с имеющимся банком данных. Поскольку база данных одна, а команд много, то имеем дело с множественным потоком команд и одиночным потоком данных.


SIMD (single instruction stream / multiple data stream) – одиночный поток команд и множественный поток данных. Эти системы обычно имеют большое количество процессоров, от 1024 до 16384, которые могут выполнять одну и ту же инструкцию относительно разных данных в жесткой конфигурации. Единственная инструкция параллельно выполняется над многими элементами данных. Примерами SIMD-машин являются системы CPP DAP, Gamma II и Quadrics Apemille. Другим подклассом SIMD-систем являются векторные компьютеры. Векторные компьютеры манипулируют массивами сходных данных подобно тому, как скалярные машины обрабатывают отдельные элементы таких массивов. Это делается за счет использования специально сконструированных векторных центральных процессоров. Когда данные обрабатываются посредством векторных модулей, результаты могут быть выданы на один, два или три такта частотогенератора (такт частотогенератора является основным временным параметром системы). При работе в векторном режиме векторные процессоры обрабатывают данные практически параллельно, что делает их в несколько раз более быстрыми, чем при работе в скалярном режиме. Примерами систем подобного типа являются, например, компьютеры Hitachi S3600.

MIMD (multiple instruction stream / multiple data stream) – множественный поток команд и множественный поток данных. Эти машины параллельно выполняют несколько потоков инструкций над различными потоками данных. В отличие от упомянутых выше многопроцессорных SISD-машин, команды и данные связаны, потому что они представляют различные части одной и той же задачи. Например, MIMD-системы могут параллельно выполнять множество подзадач с целью сокращения времени выполнения основной задачи. Большое разнообразие попадающих в данный класс систем делает классификацию Флинна не полностью адекватной. Действительно, и четырехпроцессорный SX-5 компании NEC, и тысячепроцессорный Cray T3E попадают в этот класс. Это заставляет использовать другой подход к классификации, иначе описывающий классы компьютерных систем. Основная идея такого подхода может состоять, в следующем. Будем считать, что множественный поток команд может быть обработан двумя способами: либо одним конвейерным устройством обработки, работающем в режиме разделения времени для отдельных потоков, либо каждый поток обрабатывается своим собственным устройством. Первая возможность используется в MIMD-компьютерах, которые обычно называют конвейерными или векторными, вторая – в параллельных компьютерах. В основе векторных компьютеров лежит концепция конвейеризации, т.е. явного сегментирования арифметического устройства на отдельные части, каждая из которых выполняет свою подзадачу для пары операндов. В основе параллельного компьютера лежит идея использования для решения одной задачи нескольких процессоров, работающих сообща, причем процессоры могут быть как скалярными, так и векторными.

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

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

Рисунок 2.1 - Схематический вид 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-систем :

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

Для построения масштабируемых систем на базе SMP используются кластерные или NUMA-архитектуры. При работе с SMP-системами используют так называемую парадигму программирования с разделяемой памятью (shared memory paradigm).

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

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

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

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

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

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

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

Недостатки:

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

MPP архитектура

MPP архитектура (massive parallel processing) - массивно-параллельная архитектура. Главная особенность такой архитектуры состоит в том, что память физически разделена. В этом случае система строится из отдельных модулей, содержащих процессор, локальный банк операционной памяти (ОП), два коммуникационных процессора (рутера) или сетевой адаптер, иногда - жесткие диски и/или другие устройства ввода/вывода.

Главное преимущество:

Главным преимуществом систем с раздельной памятью является хорошая масштабируемость: в отличие от SMP-систем в машинах с раздельной памятью каждый процессор имеет доступ только к своей локальной памяти, в связи с чем не возникает необходимости в потактовой синхронизации процессоров. Практически все рекорды по производительности на сегодняшний день устанавливаются на машинах именно такой архитектуры, состоящих из нескольких тысяч процессоров (ASCI Red, ASCI Blue Pacific).

Недостатки:

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

PVP архитектура

PVP (Parallel Vector Process) - параллельная архитектура с векторными процессорами.
Основным признаком PVP-систем является наличие специальных векторно-конвейерных процессоров, в которых предусмотрены команды однотипной обработки векторов независимых данных, эффективно выполняющиеся на конвейерных функциональных устройствах. Как правило, несколько таких процессоров (1-16) работают одновременно с общей памятью (аналогично SMP) в рамках многопроцессорных конфигураций. Несколько таких узлов могут быть объединены с помощью коммутатора (аналогично MPP). Поскольку передача данных в векторном формате осуществляется намного быстрее, чем в скалярном (максимальная скорость может составлять 64 Гб/с, что на 2 порядка быстрее, чем в скалярных машинах), то проблема взаимодействия между потоками данных при распараллеливании становится несущественной. И то, что плохо распараллеливается на скалярных машинах, хорошо распараллеливается на векторных. Таким образом, системы PVP архитектуры могут являться машинами общего назначения (general purpose systems). Однако, поскольку векторные процессоры весьма дороги, эти машины не будут являться общедоступными.

Кластерная архитектура

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

Зако́н Амдала (англ. Amdahl"s law , иногда также Закон Амдаля-Уэра ) - иллюстрирует ограничение ростапроизводительности вычислительной системы с увеличением количества вычислителей. Джин Амдалсформулировал закон в 1967 году, обнаружив простое по существу, но непреодолимое по содержанию ограничение на рост производительности при распараллеливании вычислений: «В случае, когда задача разделяется на несколько частей, суммарное время её выполнения на параллельной системе не может быть меньше времени выполнения самого длинного фрагмента». Согласно этому закону, ускорение выполнения программы за счётраспараллеливания её инструкций на множестве вычислителей ограничено временем, необходимым для выполнения её последовательных инструкций.

Математическое выражение

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

Иллюстрация

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

]Идейное значение

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

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

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-подобная ОС, устанавливаемая отдельно.




Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: