Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВС13 / ЛабРаб / Диплом.doc
Скачиваний:
36
Добавлен:
17.03.2015
Размер:
1.48 Mб
Скачать

1.3 Существующие параллельные вычислительные средства класса mimd

Существующие параллельные вычислительные средства класса MIMD образуют три технических подкласса:

  • симметричные мультипроцессоры;

  • системы с массовым параллелизмом;

  • кластеры.

Симметричные мультипроцессоры (SMP – Symmetric Multi Processors) используют принцип разделяемой памяти. В этом случае система состоит из нескольких однородных процессоров и массива общей памяти (обычно из нескольких независимых блоков). Все процессоры имеют доступ к любой ячейке памяти с одинаковой скоростью. Процессоры подключены к памяти с помощью общей шины или коммутатора. Аппаратно поддерживается когерентность кэшей. Вся система работает под управлением единой ОС.

Системы с массовым параллелизмом (MPP – Massively Parallel Processing) содержат множество процессоров c индивидуальной памятью, которые связаны через некоторую коммуникационную среду. Как правило, системы MPP благодаря специализированной высоко-скоростной системе обмена обеспечивают наивысшее быстродействие (и наивысшую стоимость) и находятся во главе списка 500 самых быстрых ЭВМ.

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

Первым кластером на рабочих станциях был Beowulf. Проект Beowulf начался в 1994 г. сборкой в научно-космическом центре NASA 16-процессорного кластера на Ethernet-кабеле. С тех пор кластеры на рабочих станциях обычно называют Beowulf-кластерами. Любой Beowulf-кластер состоит из машин (узлов) и объединяющей их сети (коммутатора). Кроме операционной системы (ОС), необходимо установить и настроить сетевые драйверы, компиляторы, программное обеспечение (ПО) поддержки параллельного программирования и распределения вычислительной нагрузки. В качестве узлов обычно используются однопроцессорные ПЭВМ с быстродействием 1 ГГц и выше или SMP-серверы с небольшим числом процессоров (обычно 2–4).[16]

1.4 Архитектура кластерных систем

Всё оборудование вычислительной системы можно разделить основные группы:

  1. вычислительные узлы (процессоры),

  2. коммуникационное оборудование (линии связи) и его программное обеспечение.

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

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

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

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

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

Рис. 1.4. Вычислительные системы:

а) с общей памятью, б) с распределённой памятью, в) комбинированные.

В системах с общей памятью (рис. 1.4а) межпроцессорный обмен информацией происходит через общую память. В системах с распределённой памятью (рис. 1.4б) обмен происходит путём копирования информации из ОЗУ одного процессора в ОЗУ другого. Копирование здесь происходит посредством некоторого аппаратного коммуникатора K. Этот коммуникатор может представлять собой следующее:

  1. Простую, одно или двунаправленную линию (канал) связи, по которой информация передаётся последовательно от одного блока ОЗУ к другому. Такая система в частности реализована в транспьютерных системах, в системах использующих SCI интерфейс.

  2. Коммутатор, к которому подсоединяются линии связи от отдельных процессорных узлов с локальными ОЗУ. Коммутация линий связи в таких узлах может осуществляться различными способами. Наиболее распространённые из них это: предварительная «ручная» коммутация линий связи администратором системы, централизованная программная настройка связей процессором-диспетчером (используется в транспьютерных системах), коммутация по передаваемому адресу получателя информации (система Myrinet, Fast Ethernet full duplex и др.)

  3. Общую шину, к которой подсоединены несколько процессорных узлов с локальными ОЗУ. Такая шина представляет собой единую физическую среду, в которую «сливается» вся передаваемая информация, снабжённая специальными идентификаторами или адресами, по которым и разбирается получателями (например, классический Ethernet).

  4. Комбинированную структуру, включающую в себя различные способы связи и коммутации потоков информации.

Все эти коммуникационные системы, как правило, снабжаются промежуточными буферными ЗУ, для избежания простоев оборудования и улучшения сохранности информации.

Третий тип системы (см. рис. 1.4в), является гибридом двух предыдущих случаев (а и б). Чаще всего встречается вариант, когда от двух до шестнадцати процессоров объединены в одном узле с общей памятью, а, сама же ВС состоит из иерархического объединения таких узлов. Примерами таких систем являются МВС-1000 и Hewlett-Packard Superdome.

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

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

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

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