Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем
.pdf6 0 6 Глава 14. Вычислительные системы класса MIMD
9.Данные перехватываются и передаются в кэш-память процессора Р2.3 и уже оттуда попадают в процессор Р2.3.
Из описания видно, как данные считываются из удаленной памяти с помощью аппаратных механизмов, делающих транзакции прозрачными для процессора. В основе этих механизмов лежит какая-либо форма протокола когерентности кэш памяти. Большинство реализаций отличаются именно тем, какой именно прото кол когерентности используется.
Вычислительные системы на базе транспьютеров
Появление транспьютеров связано с идеей создания различных по производитель ности ВС (от небольших до мощных массивно-параллельных) посредством пря мого соединения однотипных процессорных чипов. Сам термин объединяет два понятия — «транзистор» и «компьютер».
Транспьютер - это сверхбольшая интегральная микросхема (СБИС), заклю чающая в себе центральный процессор, блок операций с плавающей запятой (за исключением транспьютеров первого поколения Т212 и Т414), статическое опера тивное запоминающее устройство, интерфейс с внешней памятью и несколько ка налов связи. Первый транспьютер был разработан в 1986 году фирмой Inmos.
Канал связи состоит из двух последовательных линий для двухстороннего об мена Он позволяет объединить транспьютеры между собой и обеспечить взаим ные коммуникации. Данные могут пересылаться поэлементно или как вектор. Одна из последовательных линий используется для пересылки пакета данных, а вто рая — для возврата пакета подтверждения, который формируется как только па кет данных достигнет пункта назначения.
На базе транспьютеров легко могут быть построены различные виды ВС. Так, четыре канала связи обеспечивают построение двухмерного массива, где каждый транспьютер связан с четырьмя ближайшими соседями. Возможны и другие кон фигурации, например объединение транспьютеров в группы с последующим со единением групп между собой. Если группа состоит из двух транспьютеров, для подключения ее к другим группам свободными остаются шесть каналов связи (рис. 14.16, а). Комплекс из трех транспьютеров также оставляет свободными шесть каналов (рис. 14.16,6 ), а для связи с «квартетом» транспьютеров остаются еще че тыре канала связи (рис. 14.16, в). Группа из пяти транспьютеров может иметь пол ный набор взаимосвязей, но за счет потери возможности подключения к другим группам.
Особенности транспьютеров потребовали разработки для них специального языка программирования Occam. Название языка связано с именем философа-схо ласта четырнадцатого века Оккама - автора концепции «бритвы Оккамак «entia praeter necessitatem non sunt multiplicanda» — «понятия не должны умножаться без необходимости». Язык обеспечивает описание простых операций пересылки данных между двумя точками, а также позволяет явно указать на параллелизм при выполнении программы несколькими транспьютерами. Основным понятием про граммы на языке Occam является процесс, состоящий из одного или более опера-
Контрольные вопросы 6 1 1
массива завершает свои вычисления и готов передать данные соседу, он может это сделать, лишь когда последний будет готов к их приему. Для проверки готовности соседа передающий процессор сначала направляет ему запрос, а данные посылает только после получения подтверждения о готовности их принять. Такой механизм обеспечивает соблюдение заданной последовательности вычислений и делает про хождение фронта вычислений через массив плавным, причем задача соблюдения последовательности вычислений решается непосредственно, в то время как в сис толических ВС для этого требуется строгая синхронизация.
Концепцию массива процессоров волнового фронта проиллюстрируем на при мере матричного умножения (рис. 14.19).
Вычислительная система в примере состоит из процессорных элементов, име ющих на каждом входе данных буфер на один операнд. Всякий раз, когда буфер пуст, а в памяти, являющейся источником данных, содержится очередной операнд, производится немедленное его считывание в буфер соответствующего процессора. Операнды из других ПЭ принимаются на основе протокола связи с подтвержде нием.
Рисунок 14.19, а фиксирует ситуацию после первоначального заполнения вход ных буферов. Здесь ПЭ(1,1) суммирует произведение а х е с содержимым своего аккумулятора и транслирует операнды а и е своим соседям. Таким образом, пер вый волновой фронт вычислений (см. рис. 14.19,6) перемещается в направлении от ПЭ(1,1) к П Э(1,2) и ПЭ(2,1). Рисунок 14.19, в иллюстрирует продолжение распрос транения первого фронта и исход от ПЭ(1,1) второго фронта вычислений.
По сравнению с систолическими ВС массивы волнового фронта обладают луч шей масштабируемостью, проще в программировании и характеризуются более высокой отказоустойчивостью.
Контрольные вопросы
1.По какому признаку вычислительную систему можно отнести к сильно связан ным или слабо связанным ВС?
2.Какие уровни параллелизма реализуют симметричные мультипроцессорные системы?
3.Какими средствами поддерживается когерентность кэш-памяти в SMP-систе- мах?
4.Оцените достоинства и недостатки различных SMP-архитектур.
5.В чем состоит принципиальное различие между матричными и симметричны ми мультипроцессорными вычислительными системами?
6.Какие две проблемы призвана решить кластерная организация вычислитель ной системы?
7.Существуют ли ограничения на число узлов в кластерной ВС? И если суще ствуют, то чем они обусловлены?
8.Какие задачи в кластерной вычислительной системе возлагаются на специали зированное (кластерное) программное обеспечение?
6 1 2 Глава 14. Вычислительные системы класса MIMD
9.Каким образом может быть организовано взаимодействие между узлами клас терной ВС?
10.При каком количестве процессоров ВС можно отнести к системам с массовой параллельной обработкой?
11.Как организуется координация процессоров и распределение между ними за даний в МРР-системах?
12.Какие топологии можно считать наиболее подходящими для МРР-систем и по чему?
13.Поясните назначение справочника в вычислительных системах типа CC-NUMA.
14.Какие протоколы когерентности, на ваш взгляд, наиболее подходят для ВС, построенных на технологии CC-NUMA?
15.Какие черты транспьютера отличают его от стандартной однокристальной ВМ?
16.Какими аппаратными и программными средствами поддерживается взаимодей ствие соседних транспьютеров в вычислительной системе?
17.Сколько линий поддерживает канал связи транспьютера, как они используются и в каком режиме осуществляется ввод/вывод?
18.Какие особенности транспьютеров облегчает реализовать язык Occam?
19. Опишите структуру пакета данных и пакета подтверждения, передаваемых
в транспьютерных ВС.
20.Какие из рассмотренных типов вычислительных систем могут быть построены на базе транспьютеров и в каких случаях это наиболее целесообразно?
21.В чем состоят сходство и различие между систолическими ВС и вычислитель ными системами с обработкой по принципу волнового фронта?
22.Как организуется межпроцессорный обмен в массивах волнового фронта?
Глава 15
Потоковые и редукционные вычислительные системы
В традиционных ВМ команды в основном выполняются в естественной последо вательности, то есть в том порядке, в котором они хранятся в памяти. То же самое можно сказать и о традиционных многопроцессорных системах, где одновременно могут выполняться несколько командных последовательностей, но также в поряд ке размещения каждой из них в памяти. Это обеспечивается наличием в каждом процессоре счетчика команд. Выполнение команд в каждом процессоре — пооче редное и потому достаточно медленное. Для получения выигрыша программист или компилятор должны определить независимые команды, которые могут быть поданы на отдельные процессоры, причем так, чтобы коммуникационные издерж ки были не слишком велики.
Традиционные (фон-неймановские) вычислительные системы, управляемые с помощью программного счетчика, иногда называют вычислительными системами, управляемыми последовательностью команд (control flow computer). Данный термин особенно часто применяется, когда нужно выделить этот тип ВС из аль тернативных типов, где последовательность выполнения команд определяется не центральным устройством управления со счетчиком команд, а каким-либо иным способом. Если программа, состоящая из команд, хранится в памяти, возможны следующие альтернативные механизмы ее исполнения:
-команда выполняется, после того как выполнена предшествующая ей команда последовательности;
-команда выполняется, когда становятся доступными ее операнды;
-команда выполняется, когда другим командам требуется результат ее выпол нения.
Первый метод соответствует традиционному механизму с управлением после довательностью команд; второй механизм известен как управляемый данными (data driven) или потоковый (dataflow); третий метод называют механизмом управления по запросу (demand driven).
6 1 4 Глава 15. Потоковые и редукционные вычислительные системы
Общие идеи нетрадиционных подходов к организации вычислительного про цесса показаны на рис. 15.1, а их более детальному изложению посвящен текущий раздел-
Рис. 1 5.1 . Возможные вычислительные модели: а - фон-неймановская; б- потоковая; в — макропотоковая; г—редукционная
Вычислительные системы с управлением вычислениями от потока данных
Идеология вычислений, управляемых потоком данных (потоковой обработки), была разработана в 60-х гадах Карпом и Миллером. В начале 70-х годов Деннис, а позже и другие начали разрабатывать компьютерные архитектуры, основанные на вычислительной модели с потоком данных.
Вычислительная модель потоковой обработки
В потоковой вычислительной модели для описания вычислений используется ори ентированный граф, иногда называемый графом потоков данных (dataflow graph). Этот граф состоит из узлов или вершин, отображающих операции, и ребер или дуг, показывающих потоки данных между теми вершинами графа, которые они соединяют.
Узловые операции выполняются, когда по дугам в узел поступила вся необхо димая информация. Обычно узловая операция требует одного или двух операн дов, а для условных операции необходимо наличие входного логического значе ния. По выполнении операции формируются один или два результата. Таким образом, у каждой вершины может быть от одной до трех входящих дуг и одна или две выходящих. После активации вершины и выполнения узловой операции (это иногда называют инициированием вершины) результаты передаются по ребрам к ожидающим вершинам. Процесс повторяется, пока не будут инициированы все вершины и получен окончательный результат. Одновременно может быть иници ировано несколько узлов, при этом параллелизм в вычислительной модели выяв ляется автоматически.