Организация ЭВМ и систем / 551-668
.pdf
Системы с массовой параллельной обработкой (МРР) 6 0 1
Основные причины появления систем с массовой параллельной обработкой — это, во-первых, необходимость построения ВС с гигантской производительностью и, во-вторых, стремление раздвинуть границы производства ВС в большом диапазоне, как производительности, так и стоимости. Для МРР-системы, в которой количество процессоров может меняться в широких пределах, всегда реально подобрать конфигурацию с заранее заданной вычислительной мощностью и финансовыми вложениями.
Если говорить о МРР как о представителе класса MIMD с распределенной памятью и отвлечься от организации ввода/вывода, то эта архитектура является естественным расширением кластерной на большое число узлов. Отсюда для МРРсистем характерны все преимущества и недостатки кластеров, причем в связи с повышенным числом процессорных узлов как плюсы, так и минусы становятся гораздо весомее.
Характерная черта МРР-систем — наличие единственного управляющего устройства (процессора), распределяющего задания между множеством подчиненных ему устройств, чаще всего одинаковых (взаимозаменяемых), принадлежащих одному или нескольким классам. Схема взаимодействия в общих чертах довольно проста:
-центральное управляющее устройство формирует очередь заданий, каждому из которых назначается некоторый уровень приоритета;
-по мере освобождения подчиненных устройств им передаются задания из очереди;
-подчиненные устройства оповещают центральный процессор о ходе выполнения задания, в частности о завершении выполнения или о потребности в дополнительных ресурсах;
-у центрального устройства имеются средства для контроля работы подчинен-
ных процессоров, в том числе для обнаружения нештатных ситуаций, прерыва- . ния выполнения задания в случае появления более приоритетной задачи и т. п.
В некотором приближении имеет смысл считать, что на центральном процессоре выполняется ядро операционной системы (планировщик заданий), а на подчиненных ему — приложения. Подчиненность между процессорами может быть реализована как на аппаратном, так и на программном уровне.
Вовсе не обязательно, чтобы МРР-система имела распределенную оперативную память, когда каждый процессорный узел владеет собственной локальной памятью. Так, например, системы SPP1000/XA и SPP1200/XA [43] являют собой пример ВС с массовым параллелизмом, память которых физически распределена между узлами, но логически она общая для всей вычислительной системы. Тем не менее большинство МРР-систем имеют как логически, так и физически распределенную память.
Благодаря свойству масштабируемости, МРР-системы являются сегодня лидерами по достигнутой производительности; наиболее яркий пример этому — Intel Paragon с 6768 процессорами. С другой стороны, распараллеливание в МРР-сис- темах по сравнению с кластерами, содержащими немного процессоров, становится еще более трудной задачей. Следует помнить, что приращение производительности с ростом числа процессоров обычно вообще довольно быстро убывает (см. закон
6 0 2 Глава 14. Вычислительные системы класса MlМD
Амдала). Кроме того, достаточно трудно найти задачи, которые сумели бы эффективно загрузить множество процессорных узлов. Сегодня нетак уж много приложениймогутэффективновыполняться наМРР-системе, Имеет местотакжепроблема переносимости программ между системами с различной архитектурой. Эффективность распараллеливания во многих, случаях сильно зависит от деталей архитектуры МРР-системы, например топологии соединения процессорных узлов.
Самой эффективной была бы топология, в которой любой узел мог бы напрямую связаться с любым другим узлом, но в ВС на основе МРР это технически трудно реализуемо. Как правило, процессорные узлы в современных МРР-компь- ютерах образуют или двухмерную решетку (например, в SNI/Pyramid RM1000) или гиперкуб (как в суперкомпьютерах nCube [8]).
Поскольку для синхронизации параллельно выполняющихся процессов необходим обмен сообщениями, которые должны доходить из любого узла системы в любой другой узел, важной характеристикой является диаметр системы D. В случае двухмерной решетки D - sqrt(n), в случае гиперкуба D - 1n(n). Таким образом, при увеличении числа узлов более выгодна архитектура гиперкуба.
Время передачи информации от узла к узлу зависит от стартовой задержки и скорости передачи. В любом случае, за время передачи процессорные узлы успевают выполнить много команд, и это соотношение быстродействия процессорных узлов и передающей системы, вероятно, будет сохраняться — прогресс в производительности процессоров гораздо весомее, чем в пропускной способности каналов связи. Поэтому инфраструктура каналов связи в МРР-системах является объектом наиболее пристального внимания разработчиков.
Слабым местом МРР было и есть центральное управляющее устройство (ЦУУ) - при выходе его из строя вся система оказывается неработоспособной. Повышение надежности ЦУУ лежит на путях упрощения аппаратуры ЦУУ и/или ее дублирования.
Несмотря на все сложности, сфера применения ВС с массовым параллелизмом постоянно расширяется. Различные системы этого класса эксплуатируются во многих ведущих суперкомпьютерных центрах мира. Следует особенно отметить компьютеры Cray T3D и Cray T3E, которые иллюстрируют тот факт, что мировой лидер производства векторных суперЭВМ, компания Cray Research, уже не ориентируется исключительно на векторные системы. Наконец, нельзя не вспомнить, что суперкомпьютерный проект министерства энергетики США основан на МРРсистеме на базе Pentium.
На рис. 14.14 показана структура МРР-системы RM1000, разработанной фирмой Pyramid.
В RM1000 используются микропроцессоры типа MIPS. Каждый узел содержит процессор R4400, сетевую карту Ethernet и два канала ввода/вывода типа SCSI. Реализованный вариант включает в себя 192 узла, но сеть соединений предусматривает масштабирование до 4096 узлов. Каждый узел имеет коммуникационный компонент для подключения к соединяющей сети, организованной по топологии двухмерной решетки. Связь с решеткой поддерживается схемами маршрутизации, с четырьмя двунаправленными линиями для связи с соседними узлами и одной линией для подключения к данному процессорному узлу. Скорость передачи информации в каждом направлении — 50 Мбит/с.
Вычислительные системы с неоднородным доступом к памяти 6 0 3
Рис. 14.14. Структура МРР-системы RM1000
Каждый узел работает под управлением своей копии операционной системы, управляет «своими»- периферийными устройствами и обменивается с другими узлами путем пересылки сообщений по сети соединений. Операционная система содержит средства для повышения надежности и коэффициента готрвности.
Отметим, что при создании МРР-систем разные фирмы отдают предпочтение различным микропроцессорам и топологиям сетей соединений (табл, 14.2).
Таблица 14.2. Основныехарактеристики некоторыхМРР-систем
Вычислительныесистемыснеоднородным доступом к памяти
Основные платформы, обычно применяемые при создании коммерческих мультипроцессорных систем, это SMP, МРР и кластеры. Наряду с ними в последнее время стали появляться решения, в которых акцентируется способ организации памяти. Речь идет о ВС, построенных в соответствии с технологией неоднородного доступа к памяти (NUMA, Non-Uniform Memory Access), точнее с кэш-когерент- ным доступом к неоднородной памяти (CC-NUMA).
6 0 4 Глава 14. Вычислительные системы класса MIMD
В симметричных мультипроцессорных вычислительных системах (SMP) имеет место практический предел числа составляющих их процессоров. Эффективная схема с кэш-памятью уменьшаеттрафик шины между процессором и основной памятью, но по мере увеличения числа процессоров трафик шины также возрастает. Поскольку шина используется также для передачи сигналов, обеспечивающих когерентность, ситуация с трафиком еще более напрягается. С какого-то момента в плане производительности шина превращается вузкое место. Для систем типа SMP таким пределом становится число процессоров в пределах от 16 до 64. Например, объем SMP-системы Silicon Graphics Power Challenge ограничен 64 процессорами R10000, поскольку при дальнейшем увеличении числа процессоров производительность падает.
Ограничение на число процессоров в архитектуре SMP служит побудительным мотивом для развития кластерных систем, В последних же каждый узел имеет локальную основную память, то есть приложения «не видят» глобальной основной памяти. Всущности, когерентность поддерживаетсянестолькоаппаратурой,сколько программным обеспечением, что не лучшим образом сказывается на продуктивности. Одним из путей создания крупномасштабных вычислительных систем являетсятехнология CC-NUMA. Например,NUMA-системаSilicon Graphics Origin поддерживает до 1024 процессоров R10000 [223], a Sequent NUMA-Q объединяет 252 процессора Pentium II [157].
На рис. 14.15 показана типичная организация систем типа CC-NUMA [36]. Имеется множество независимых узлов, каждый из которых может представлять собой, например, SMP-систему. Таким образом, узел содержит множествопроцессоров, у каждого из которых присутствуют локальные кэши первого (L1) и второго (L2) уровней. В узле есть и основная память, общая для всех процессоров этого узла, но рассматриваемая как часть глобальной основной памяти системы, В архитектуре CC-NUMA узел выступает основным строительным блоком. Например, каждый узел в системе Silicon Graphics Origin содержитдва микропроцессора MIPS R10000, а каждый узел системы Sequent NUMA-Q включает в себя четыре процессора Pentium II. Узлы объединяются с помощью какой-либо сети соединений, которая представлена коммутируемой матрицей, кольцом или имеет иную топологию.
Согласно технологии CC-NUMA, каждый узел в системе владеет собственной основной памятью, но с точки зрения процессоров имеет место глобальная адресуемая память, где каждая ячейка любой локальной основной памяти имеет уникальный системный адрес. Когда процессор инициирует доступ к памяти и нужная ячейка отсутствует в его локальной кэш-памяти, кэш-память второго уровня (L2) процессора организует операцию выборки. Если нужная ячейка находится в локальной основной памяти, выборка производится с использованием локальной шины. Если же требуемая ячейка хранится в удаленной секции глобальной памяти,тоавтоматическиформируетсязапрос, посылаемыйпосетисоединений нанужную локальную шину и уже по ней к подключенному к данной локальной шине кэшу. Все эти действия выполняются автоматически, прозрачны для процессора
иего кэш-памяти,
Вданной конфигурации главная забота — когерентность кэшей. Хотя отдельные реализации и отличаются в деталях, общим является то, что каждый узел со-
Вычислительные системы с неоднородным доступом к памяти 6 0 5
Рис. 14.15. Организация систем типа CC-NUMA
держит справочник, где хранится информация о местоположении в системе каждой составляющей глобальной памяти, а также о состоянии кэш-памяти.
Чтобы проанализировать, как работает такая схема, воспользуемся примером, приведенным в [182]. Пусть процессор 3 узла 2 (Р2.3) запрашивает ячейку с адресом 798, расположенную в узле 1. Будет наблюдаться такая последовательность действий:
1.Р2.3 выдает на шину наблюдения узла 2 запрос чтения ячейки 798.
2.Справочник узла 2 видит запрос и распознает, что нужная ячейка находится в узле 1.
3.Справочник узла 2 посылает запрос узлу 1, который принимается справочником узла 1.
4.Справочник основной памяти 1, действуя как заменитель процессора Р2.3, запрашивает ячейку 798, так как будто он сам является процессором.
5.Основная память узла 1 реагирует тем, что помещает затребованные данные на локальную шину узла 1.
6.Справочник узла 1 перехватывает данные с шины.
7.Считанное значение через сеть соединений передается обратно в справочник узла 2.
8.Справочник узла 2 помещает полученные данные на локальную шину узла 2, действуя при этом как заместитель той части памяти, где эти данные фактически хранятся.
6 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 0 7
а |
6 |
в |
Рис. 14.16. Группы из полностью взаимосвязанных транспьютеров: а — два транспьютера; б—тритранспьютера;в—четыретранспьютера
торов программы, которые могутбыть выполнены последовательноили параллельно. Процессы могут быть распределены по транспьютерам вычислительной системы, при этом оборудование транспьютера поддерживает совместное использование транспьютера одним или несколькими процессами.
Принято говорить о двух поколениях транспьютеров и языка Occam. Первое поколение отражаеттребованиятех приложений,для которыхтранспьютеры и разрабатывались: цифровой обработки сигналов и систем реального времени. Для подобных задач нужны сравнительно небольшие ВС со скоростными каналами связи (главным образом, между соседними процессорами) и быстрым переключением контекста. Под контекстом понимается содержимое регистров, которое при переходе к новой задаче в ходе многозадачной обработки может быть изменено и поэтому должно быть сохранено, а при возврате к старой задаче — восстановлено. Многомашинные ВС, построенные на транспьютерах первого поколения (Т212, Т414 и Т805), по своей производительности были сравнимы с другими типами ВС того времени.
С появлением вычислительных систем второго итретьего поколений сталоясно, что ВС натранспьютерах ранней организации ужестали неконкурентоспособными, чтои побудило к созданию их второго поколения (Т9000). В последних существенно повышена производительность и улучшены каналы связи. Главная особенность транспьютеров второго поколения — развитые коммуникационные возможности, хотя в вычислительном плане, даже несмотря на наличие в них блоков для операций с плавающей запятой, они сильно уступают универсальным микропроцессорам, таким как PowerPC и Pentium.
Архитектура транспьютера
Обобщенная структура транспьютера, показанная на рис. 14.17, включает в себя:
-центральный процессор;
-АЛУ для операций с плавающей запятой;
-каналы связи;
-- внутреннюю память (ОЗУ);
6 0 8 Глава 14. Вычислительные системы класса MIMD
-интерфейс для подключения внешней памяти;
-интерфейс событий (систему прерываний);
-логику системного сервиса (систему обслуживания);
-таймеры.
Рис.14.17.Базоваявнутренняяархитектуратранспьютера
Первый транспьютер Т212 содержал 16-разрядный арифметический процессор. Последующие транспьютеры были оснащены 32-разрядным целочисленным процессором (Т414,1985) и процессором с плавающей запятой (Т800, Т9000), дающим существенное повышение скорости вычислений (до 100 MIPS). Версии, поддерживающие процессор с ПЗ, организованы так, что этот процессор и целочисленный процессор могут работать одновременно. В дополнение, в Т9000 добавлена внутренняя кэш-память и процессор виртуального канала. Сам по себе процессор транспьютера построен по архитектуре RISC, имеет микропрограммное УУ, а команды в нем выполняются за минимальное число циклов процессора. Простые операции, такие как сложение или вычитание, занимают один цикл, в то время как более сложные операции требуют нескольких циклов. Команды состоят
Вычислительные системы с обработкой попринципуволновогофронта 6 0 9
из одного или нескольких байтов. Большинство версий транспьютеров имеют по четыре последовательных какала связи со скоростью передачи по каналу порядка 10 Мбит/с. По мере развития транспьютеров повысилась скорость передачи по каналам связи. Емкость внутренней памяти (вначале 2 Кбайт) также возросла. Появилась возможность подключения внешней памяти через интерфейс памяти. Схема этого интерфейса программируется и способна формировать различные сигналы для удовлетворения различных требований самых разнообразных микросхем внешней памяти.
Передача информации производится синхронно под воздействием либо общего генератора тактовых импульсов (ГТИ), либо локальных ГТИ с одинаковой частотой следования импульсов. Информация передается в виде пакетов. Каждый раз, когда пересылается пакет данных, приемник отвечает пакетом подтверждения (рис.14.18).
Рис. 14.18. Организация ввода/вывода в транспьютерной системе
Пакет данных состоит из двух битов-единиц, за которыми следуют 8-битовые данные и ноль (всего 11 бит). Пакет подтверждения — это простая комбинация 10 (всего два бита), она может быть передана, как только пакет данных будет идентифицирован интерфейсом входного канала. Каналы обеспечивают аппаратную поддержку операторов ввода и выводаязыка Occam и функционируют словно каналы ПДП, то есть пакеты могут пересылаться один за другим как векторы. Для коммуникаций между процессами внутри транспьютера вместо внешних каналов операторы ввода/вывода используют внутренние каналы транспьютера.
Интерфейс событий дает возможность внешнему устройству привлечь внимание и получить подтверждение. Этот интерфейс функционирует как входной канал и аналогично программируется.
Вычислительные системы с обработкой попринципуволновогофронта
Интересной разновидностью систолических структур являются матричные процессоры волнового фронта (wavefront array processor), иногда называемые также
волновымиилифронтальными.
Как уже отмечалось, в основе построения систолических ВС лежит глобальная синхронизация массива процессоров, предусматривающая наличие сети распределения синхронизирующих сигналов по всей структуре. Б системах с очень большим числом ПЭ начинает сказываться запаздывание тактовых сигналов. Послед-
6 1 0 Глава 14. Вычислительные системы класса MIMD
нее обстоятельство особенноощутимопри исполнении массива на базе СБИС, где связи между ПЭ очень тонкие физически, вследствие чего обладают повышенной емкостью. В итоге возникают серьезные проблемы с синхронизацией, для устранения которых предпочтительным представляется использование самосинхронизирующихся схем управления процессорными элементами. Самосинхронизация заключается в том, что моменты начала очередной операции каждый ПЭ определяет автоматически, по мере готовности соответствующих операндов. В итоге отпадает необходимость глобальной синхронизации, исчезают непроизводительные временные издержки и повышается общая производительность всей структуры, хотя и усложняется аппаратная реализация каждого ПЭ [135,147].
Волновые процессорные массивы сочетают систолическую конвейерную обработку данных с асинхронным характером потока данных. В качестве механизма координации межпроцессорного обмена в волновых системах принята асинхронная процедура связи с подтверждением (handshake). Когда какой-либо процессор
Рис. 14.19. Выполнение матричного умножения на волновой вычислительной системе
