Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТКАЗОУСТОЙЧИВОСТЬ КЛАСТЕР RAID.doc
Скачиваний:
14
Добавлен:
17.06.2016
Размер:
294.4 Кб
Скачать

1.3. Классы параллельных эвм

Согласно классификации Флинна имеются два основных класса параллельных ЭВМ.

1. SIMD (Single Instruction – Multiple Data) – одиночный поток команд и множественный поток данных. В таких ЭВМ выполняется единственная программа, но каждая команда обрабатывает массив данных. Это соответствует векторной форме параллелизма.

2. MIMD (Multiple Instruction − Multiple Data) – множественный поток команд и множественный поток данных. В таких ЭВМ одновременно и независимо друг от друга выполняются несколько программных ветвей, обменивающихся данными. Такие системы обычно называют многопроцессорными. Кластеры относятся к классу MIMD.

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

R = T1 / Tn ,

где T1 – время выполнения задачи на однопроцессорной ЭВМ; Tn – время выполнения той же задачи на n-процессорной ЭВМ.

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

Системы адресации данных в ЭВМ класса MIMD с общей и индивидуальной памятью отличаются друг от друга.

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

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

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

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

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

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

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

Первый кластер, организованный на рабочих станциях, назван был Beowulf. Проект Beowulf начался в 1994 г. сборкой в научно-космическом центре NASA 16-процессорного кластера, использующего локальную сеть Ethernet. С тех пор кластеры на рабочих станциях обычно называют Beowulf-кластерами.

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

Для получения хорошей производительности межпроцессорных обменов используют полнодуплексную сеть Fast Ethernet с пропускной способностью 100 Mбит/с. При этом для уменьшения числа коллизий устанавливают несколько «параллельных» сегментов Ethernet или соединяют узлы кластера через коммутатор (switch).

В качестве операционных систем обычно используют Linux или Windows NT и ее варианты, а в качестве языков программирования применяют языки С, С++ и старшие версии языка Fortran.

Наиболее распространенным интерфейсом параллельного программирования в модели передачи сообщений является MPI (Message Passing Interface). Рекомендуемой бесплатной реализацией MPI является пакет MPICH, разработанный в Аргоннской национальной лаборатории США.

Во многих организациях имеются локальные сети компьютеров с соответствующим программным обеспечением. Если такую сеть снабдить бесплатной реализацией MPI, т. е. пакетом MPICH, то без дополнительных затрат получается Beowulf-кластер, который сравним по мощности с супер-ЭВМ. Это является причиной широкого распространения таких кластеров.

Основными средствами программирования для многопроцеccорных систем являются две библиотеки, оформленные как стандарты: библиотека OpenMP для систем с общей памятью (для SMP-систем) и библиотека MPI для систем с индивидуальной памятью.