Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

ВК на базе СМ ЭВМ (DEC)




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

Как и в ЕС ЭВМ в СМ ЭВМ предусмотрен набор средств для создания комплексов: переключатель общей шины, адаптер межпроцессорной связи, устройство сопряжения ЭВМ (рисунок 6.4).

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

 

 

 
 

 


Рисунок 6.4.

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

Адаптер межпроцессорной связи (АМС) предназначен для такой связи между ЭВМ, при которой любой из процессоров двух связанных ЭВМ может обращаться к устройствам ЭВМ, как к своим собственным. Обращение процессора одной ЭВМ к устройствам другой выполняются обычными командами с использованием, так называемого окна, то есть зоны адресов, специально отведенной для этой цели. Емкость окна выбирается при проектировании. Местоположение окна на адресной шине комплекса задается программно перед установлением связи через АМС. В качестве окна может быть использован любой незадействованный блок адресов, но на практике чаще всего окно располагается вслед за адресами ОП. АМС подключается на ОШ обеих ЭВМ. Любое обращение к окну реализуется в режиме прямого доступа. Устройство симметрично, то есть любая ЭВМ может быть и источником и приемником данных. Обращение через окно может исходить из любого устройства, которое способно быть задающим. Функционально АМС включает в себя несколько адресуемых регистров для входных и выходных данных, адресов и сигналов управления.

 

 


Рисунок 6.5.

На рисунке 6.5 представлен трехпроцессорный комплекс, в котором ОС является общей для всех процессов. Эта же схема может быть и схемой трех- машинного комплекса, если каждый процессор работает только по своей ОП. Работа АМС поддерживается программами, входящими в состав специального программного обеспечения СМ ЭВМ.

Для организации иерархических комплексов на основе ЕС и СМ ЭВМ (рис. 6.6)используется устройство сопряжения вычислительных машин (УСВМ).

В таком комплексе центральная ЭВМ – типа ЕС и периферийная ЭВМ- типа СМ. УСВМ имеет два интерфейса - ЕС и СМ. К ЕС ЭВМ УСВМ подключается к селекторному или мультиплексному каналам, а к СМ ЭВМ - к ОШ и реагирует на команды ЭВМ как обычное периферийное устройство, используя эти команды для установки связи между ЭВМ. УСВМ состоит из двух частей: интерфейсного блока и устройства управления. Взаимодействие УСВМ и СМ ЭВМ осуществляется с помощью четырех адресуемых регистров: регистров команд и состояния (РКС), регистра данных(РД), регистра адреса (РА) и регистра длины массива (РДМ).

Информация в РКС определяет режим работы УСВМ и отражаемое его состояние. Реализация алгоритмов взаимодействии ЕС с УСВМ – аппаратная, а инициализация режима обмена - программная.

 

Рисунок 6.6.

 

§6.3. Комплексы на основе микро-ЭВМ и микропроцессоров.

Всё многообразие таких комплексов можно разделить на три группы.

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

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

Третья группа ВК характеризуется наличием общего поля ОП.

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

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

Идея комплексов с общедоступной памятью очень проста – ОЗУ и ВЗУ каждой ЭВМ доступны для других ЭВМ. С этой целью предусматривается соответствующие связи, а система адресации позволяет рассмотреть все ЗУ как единое целое. При этом любая ЭВМ имеет все ресурсы для решения задач и управления своей ОС, т.е. комплекс остается многомашинным. Однако, общедоступная память дает новое качество, а именно, возможность использовать общие базы данных, решать на нескольких ЭВМ одну общую задачу. При решении одной задачи на нескольких ЭВМ, как и в МПВК, сохраняется проблема синхронизации этапов решения.

Наиболее характерным в этой группе является комплекс Cm*, разработанный в университете Карнеги (рисунок 6.7).

Рисунок 6.7.

Основным элементом комплекса является микро-ЭВМ LSI-II фирмы DEC, включающая в себя процессор, ОЗУ, ВЗУ на дисках, устройства для работы оператора. Все устройства объединены общей шиной. Несколько таких ЭВМ (до 14) связываются через шину отображения с помощью локальных переключателей Se. Группа ЭВМ, связанных шиной отображения образует кластер. В комплексах может быть несколько кластеров, которые объединяются между собою межкластерными шинами. Взаимодействие кластеров обеспечивается коммутационным процессором (КП). Этот процессор управляет и шиной отображения. Любой процессор имеет доступ по всем ЗУ системы. Система адресации позволяет отображать виртуальное адресное пространство. В комплексе доступ к различным ЗУ осуществляется с различной задержкой: минимальная задержка наблюдается при обращении к собственной памяти, средняя задержка характерна при обращении к памяти другой ЭВМ, входящей в тот же кластер, и максимальная задержка - при обращении к ЗУ других кластеров.

По таким же, примерно, как и в Cm* принципам строятся и современные кластеры.

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

Рисунок 6.8.

Характерным представителем этой группы является Cmmp (рисунок 6.8).

Система Cmmp строилась на основе мини-ЭВМ PDP-11/40 фирмы DEC. В комплексе может быть 16 ЭВМ и 16 МП. С помощью матричного коммутатора (16x16) к любой ЭВМ может подключиться один из 16 модулей памяти (МП), создающий общее поле памяти. Так как адресное поле ЭВМ, не соответствует общему адресному пространству общей памяти, обращение процессоров к общей памяти осуществляется через специальный транслятор адреса (ТА).

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

Рассматривая организацию обработки информацию в таких ВК, можно отметить, что принципиально и в том и в другом комплексе возможны все три способа функционирования «ведущий-ведомый», раздельное выполнение заданий любым процессором, симметричная обработка. Однако для комплексов типа Cm* больше подходит «ведущий-ведомый», а симметричная обработка сильно затруднена. Для вычислительных комплексов типа Cmmp одинаково приемлемы все три способа.

Глава 7. Особенности организации вычислительных процессов.

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

С учетом этого, можно дать оценку сложности ОС ЭВМ, входящих в МПВК.

Как правило, ОС в MMВК мало отличаются от ОС одиночных ЭВМ, работающих в мультипрограммном режиме. Достаточно ОС одиночных ЭВМ дополнить компонентами, обеспечивающими комплексирование.

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

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

Однако, использование всех возможностей МПВК является непростой задачей, так как операционные системы оказываются очень сложными.

Известны три типа организации вычислительного процесса в МПВК и соответствующие три типа функционирования ОС:

1. ведущий-ведомый;

2. раздельное выполнение заданий в любом процессоре;

3. симметричная или однородная обработка информации всеми процессорами.

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

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

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

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

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

Во-вторых, ОС МПВК должна осуществить автоматическое реконфигурирование комплекса (перераспределение ресурсов), что осложняет ОС.

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

Сравнение ММВК и МПВК.

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

По параметру надежности МПВК имеют явное преимущество: в ММВК резервирование осуществляется по машинам, а в МПВК- по устройствам. МПВК может обеспечить большую надежность при том же объеме оборудования.

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

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

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

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

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

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

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

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

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

Глава 8. Системы параллельной обработки данных.

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

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

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

Параллельные ЭВМ часто подразделяются по классификации Флинна на машины типа SIMD (Single Instruction Multiple Data - с одним потоком команд при множественном потоке данных) и MIMD (Multiple Instruction Multiple Data - с множественным потоком команд при множественном потоке данных). Как и любая другая, эта классификация несовершенна: существуют машины в нее не попадающие, имеются также важные признаки, которые в этой классификации не учтены. В частности, к машинам типа SIMD часто относят векторные процессоры, хотя их высокая производительность зависит от другой формы параллелизма - конвейерной организации машины. Многопроцессорные векторные системы, типа Cray Y-MP, состоят из нескольких векторных процессоров и поэтому могут быть названы MSIMD (Multiple SIMD).

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

Можно выделить четыре основных типа архитектуры систем параллельной обработки:

1) Конвейерная и векторная обработка.

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

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

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

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

Модели вычислений на векторных и матричных ЭВМ настолько схожи, что эти ЭВМ часто рассматриваются как эквивалентные.

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

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

4) Многопроцессорные машины с SIMD-процессорами.

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

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

Многопроцессорные системы за годы развития вычислительной техники претерпели ряд этапов своего развития. Исторически первой стала осваиваться технология SIMD. Однако в настоящее время наметился устойчивый интерес к архитектурам MIMD. Этот интерес главным образом определяется двумя факторами:

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

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

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

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

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

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

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

К первой группе относятся машины с общей (разделяемой) основной памятью, объединяющие до нескольких десятков (обычно менее 32) процессоров. Сравнительно небольшое количество процессоров в таких машинах позволяет иметь одну централизованную общую память и объединить процессоры и память с помощью одной шины. При наличии у процессоров кэш-памяти достаточного объема высокопроизводительная шина и общая память могут удовлетворить обращения к памяти, поступающие от нескольких процессоров. Поскольку имеется единственная память с одним и тем же временем доступа, эти машины иногда называются UMA (Uniform Memory Access). Такой способ организации со сравнительно небольшой разделяемой памятью в настоящее время является наиболее популярным. Структура подобной системы представлена на рис. 8.1.

Рисунок 8.1.Типовая архитектура мультипроцессорной системы с общей памятью.

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

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

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

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

Рисунок 8.2. Типовая архитектура машины с распределенной памятью.

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

Рисунок 8.3. Структура класса многопроцессорных вычислительных систем.

Для мультипроцессоров учитывается способ построения общей памяти. Возможный подход – использование единой централизованной общей памяти. Такой подход обеспечивает однородный доступ к памяти (uniform memory access or UMA) и служит основой для построения векторных суперкомпьютерных систем (parallel vector processor-PVP) и симметричных мультипроцессоров (symmetric multiprocessor or SMP).

Общий доступ к данным может быть обеспечен и при физически распределенной памяти. При этом время доступа уже не будет одинаковым для всех модулей памяти. Такой подход именуется как неоднородный доступ к памяти (non-uniform memory access or NUMA). Среди систем с таким типом выделяют:

• Системы, в которых для предоставления данных используется только локальная кэш память процессоров (cache-only memory architecture or COMA);

• Системы в которых обеспечивается однозначность (когерентность) локальных кэш памятей разных процессоров (cache-coherent NUMA or CC-NUMA);

• Системы в которых обеспечивается общий доступ к локальной памяти разных процессоров без поддержки на аппаратном уровне когерентности кэша (non-cache coherent NUMA or NCC-NUMA).

Мультикомпьютеры (системы с распределенной памятью) уже не обеспечивают общий доступ ко всей имеющейся в системах памяти (no-remote access or NORMA).

Такой подход используется при построении двух важных типов многопроцессорных систем – массивно-параллельных систем (massively parallel processor or MPP) и кластеров (clusters).

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

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

• предсказания погоды и глобальных изменений в атмосфере;

• полупроводниковая техника;

• сверхпроводимость;

• биология;

• генетика;

• квантовая физика;

• астрономия;

• транспортные задачи;

• гидро- и газодинамика;

• управляемый термоядерный синтез;

• геоинформационные системы;

• геология;

• наука о мировом океане;

• распознавание и синтез речи;

• распознавание изображений.

Наиболее распространенными типами многопроцессорных вычислительных систем являются:

• системы высокой надежности;

• системы для высокопроизводительных вычислений;

• многопоточные системы.

Следует отметить, что при проектировании большой системы общего назначения она, как правило, должна выполнять все перечисленные функции. МВС являются идеальной схемой для повышения надежности информационно-вычислительной системы. Отдельные неисправные узлы или компоненты МВС могут прозрачно для пользователя заменяться, обеспечивая непрерывность и безотказную работу. Главной характеристикой многопроцессорной вычислительной системы является ее производительность, т.е. количество операций, производимых системой за единицу времени. Используют два вида производительности: пиковую и реальную производительность. Под пиковой понимают величину, равную произведению пиковой производительности одного процессора на число таких процессоров в данной машине. При этом предполагается, что все устройства компьютера работают в максимально производительном режиме. Пиковая производительность компьютера является базовой, по которой производят сравнение высокопроизводительных вычислительных систем. Пиковая производительность - величина теоретическая и недостижимая при запуске конкретного приложения. Реальная производительность, достигаемая на данном приложении, зависит от взаимодействия программной модели с архитектурными особенностями системы. Существует два способа оценки пиковой производительности компьютера. Одним из них является число команд (инструкций), выполняемых компьютером за единицу времени. Единицей измерения является MIPS (Million Instructions Per Second). Производительность, выраженная в MIPS, говорит о скорости выполнения компьютером своих же инструкций. Но, во-первых, заранее не ясно, в какое количество инструкций отобразится конкретная программа, а во-вторых, каждая программа обладает своей спецификой, и число команд от программы к программе может меняться очень сильно. В связи с этим данная характеристика дает лишь самое общее представление о производительности компьютера. Другой способ измерения производительности заключается в определении числа вещественных операций, выполняемых компьютером за единицу времени. Единицей измерения является Flops (Floating point operations per second) – число операций с плавающей точкой, производимых компьютером за одну секунду. Такой способ является более приемлемым для пользователя, поскольку ему известна вычислительная сложность программы, и, пользуясь этой характеристикой, пользователь может получить нижнюю оценку времени ее выполнения. Однако пиковая производительность получается только в идеальных условиях, т.е. при отсутствии конфликтов при обращении к памяти при равномерной загрузке всех устройств. В реальных условиях на выполнение конкретной программы влияют такие аппаратно-программные особенности данного компьютера как: особенности структуры процессора, системы команд, состав функциональных устройств, реализация ввода/вывода, эффективность работы компиляторов.

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

Для того чтобы оценить эффективность работы вычислительной системы на реальных задачах, был разработан фиксированный набор тестов. Наиболее известным из них является LINPACK – программа, предназначенная для решения системы линейных алгебраических уравнений с плотной матрицей с выбором главного элемента по строке. LINPACK используется для формирования списка Top500 – пятисот самых мощных компьютеров мира. Однако LINPACK имеет существенный недостаток: программа распараллеливается, поэтому невозможно оценить эффективность работы коммуникационного компонента суперкомпьютера. В настоящее время большое распространение получили тестовые программы, взятые из разных предметных областей и представляющие собой либо модельные, либо реальные промышленные приложения. Такие тесты позволяют оценить производительность компьютера действительно на реальных задачах и получить наиболее полное представление об эффективности работы компьютера с конкретным приложением. Наиболее распространенными тестами, построенными по этому принципу, являются: набор из 24 Ливерморских циклов (The Livermore Fortran Kernels, LFK) и пакет NAS Parallel Benchmarks (NPB), в состав которого входят две группы тестов, отражающих различные стороны реальных программ вычислительной гидродинамики. NAS тесты являются альтернативой LINPACK, поскольку они относительно просты и в то же время содержат значительно больше вычислений, чем, например, LINPACK или LFK. Однако при всем разнообразии тестовые программы не могут дать полного представления о работе компьютера в различных режимах.

 

 

Рисунок 8.4. CRAY SV-2.

2. NEC SX-6, NUMA -архитектура. Пиковая производительность системы может достигать 8 Тфлопс, производительность одного процессора составляет 9,6 Гфлопс. Система масштабируется с единым образом операционной системы до 512 процессоров.

3. Fujitsu-VPP5000 (vector parallel processing), MPP -архитектура (рисунок 8.5). Производительность одного процессора составляет 9.6 Гфлопс, пиковая производительность системы может достигать 1249 Гфлопс, максимальная емкость памяти – 8 Тбайт. Система масштабируется до 512.

Рисунок 8.5. Fujitsu-VPP5000

Парадигма программирования на PVP-системах предусматривает векторизацию циклов (для достижения разумной производительности одного процессора) и их распараллеливание (для одновременной загрузки нескольких процессоров одним приложением).

На практике рекомендуется выполнять следующие процедуры:

· производить векторизацию вручную, чтобы перевести задачу в матричную форму. При этом, в соответствии с длиной вектора, размеры матрицы должны быть кратны 128 или 256;

· работать с векторами в виртуальном пространстве, разлагая искомую функцию в ряд и оставляя число членов ряда, кратное 128 или 256.

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

 

Глава 9. Кластерные системы.




Поделиться с друзьями:


Дата добавления: 2014-12-26; Просмотров: 885; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.116 сек.