ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.12.2021

Просмотров: 2176

Скачиваний: 7

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Векторные и векторно-конвейерные вычислительные системы  5 6 1

модели Y-MP и С-90. Аналогичный подход заложен в системы фирм Fujitsu, Hitachi
и NEC. Время цикла в современных ВП варьируется от 2,5 нс (NEC SX-3) до 4,2 нс
(Cray C90), а производительность, измеренная по тесту UNPACK, лежит в диапа-

зоне от 1000 до 2000 MFLOPS (от 1 до 2 GFLOPS).

Обработка длинных векторов и матриц

Аппаратура векторных процессоров типа «регистр-регистр» ориентирована на об-
работку векторов, длина которых совпадает с длиной векторных регистров (ВР),
поэтому обработка коротких векторов не вызывает проблем — достаточно запи-

сать фактическую длину вектора в регистр длины вектора.

Если размер веkторов превышает емкость ВР, используется техника разбиения

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

 strip-

mining.

 Процесс разбиения обычно происходит на стадии компиляции, но в ряде

ВП данная процедура производится по ходу вычислений с помощью аппаратных

средств на основе информации, хранящейся в регистре максимальной длины век-
тора.

Ускорение вычислений

Для повышения скорости обработки векторов все функциональные блоки вектор-

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

ступеней в разных функциональных блоках может быть различным). В некоторых

векторных ВС, например Cray C90, этот подход несколько усовершенствован —
конвейеры во всех функциональных блоках продублированы (рис. 13.8).

Рис. 13.8. Выполнение векторных операций при двух конвейерах

На конвейер 0 всегда подаются элементы векторов с четными номерами, а на

конвейер  1 - е нечетными. В начальный момент на первую ступень конвейера 0 из

ВР V

1

 и V

2

 поступают нулевые элементы векторов. Одновременно первые элементы


background image

5 6 2 Глава 13. Вычислительные системы класса SIMD

векторов из этих регистров подаются на первую ступень конвейера 1. На следую-

щем такте на конвейер 0 подаются вторые элементы из V

1

 и

 V

2

 а на конвейер 2 -

третьи элементы и т. д. Аналогично происходит распределение результатов в вы-
ходном векторном регистре V

3

. В итоге функциональный блок при максимальной

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

Интересной особенностью некоторых ВП типа «регистр-регистр», например ВС

фирмы Cray Research Inc., является так называемое

 сцепление векторов

 (vector

chaining или vector linking), когда ВР результата одной векторной операции ис-
пользуется в качестве входного регистра для последующей векторной операции.

Для примера рассмотрим последовательность из двух векторных команд, предпо-

лагая, что длина векторов равна 64: V

2

 =V

o

 x V

1

, V

4

 =V

2

 + V

3

.

Рис. 13,9. Сцепление векторов

Результат первой команды служит операндом для второй. Напомним, что по-

скольку команды являются векторными, первая из них должна послать в конвей-
ерный умножитель до 64 пар чисел. Примерно в середине выполнения команды
складывается ситуация, когда несколько начальных элементов вектора V

2

 будут

уже содержать недавно вычисленные произведения; часть элементов V

2

 все еще

будет находиться в конвейере, а оставшиеся элементы операндов V

o

 и V

1

 еще оста-

ются во входных векторных регистрах, ожидая загрузки в конвейер. Такая ситуация

показана на рис. 13.9, где элементы векторов V

o

 и V

1

, находящиеся в конвейерном

умножителе,имеют темную закраску. В этот момент система извлекает элементы

V

0

[k]

 и V

1

[k]

 с тем, чтобы направить их на первую ступень конвейера, в то время

как

 V

2

 [ j]

 покидает конвейер. Сцепление векторов иллюстрирует линия, обозна-

ченная звездочкой. Одновременно с занесением V

2

[j] в ВР этот элемент направля-

ется и в конвейерный сумматор, куда также подается и элемент V

3

[j]. Как видно из

рисунка, выполнение второй команды может начаться до завершения первой, и по-
скольку одновременно выполняются две команды, процессор формирует два ре-
зультата за цикл (V

4

[i] и V

2

[j]) вместо одного. Без сцепления векторов пиковая

производительность Сгау-1 была бы 80 MFLOPS (один полный конвейер произ-

водит результат каждые 12,5 нc). При сцеплении трех конвейеров теоретический

пик производительности — 240 MFLOPS. В принципе сцепление векторов можно


background image

Матричные вычислительные системы  5 6 3

реализовать и в векторных процессорах типа «память-память», но для этого необ-
ходимо повысить пропускную способность памяти. Без сцепления необходимы три
«канала»: два для входных потоков операндов и один — для потока результата. При

использовании сцепления требуется обеспечить пять каналов: три входных и два

выходных.

Завершая обсуждение векторных и векторно-конвейерных ВС, следует отме-

тить, что с середины 90-х годов прошлого века этот вид ВС стал уступать свои
позиции другим более технологичным видам систем. Тем не менее одна из послед-
них разработок корпорации NEC (2002 год) — вычислительная система «Модель
Земли» (The Earth Simulator), — являющаяся на сегодняшний момент самой про-
изводительной вычислительной системой в классе, по сути представляет собой
векторно-конвейерную ВС. Система включает в себя 640 вычислительных узлов
по 8 векторных процессоров в каждом. Пиковая производительность суперкомпь-

ютера превышает 40 TFLOPS.

Матричные вычислительные системы

Назначение

 матричных вычислительных систем

 во многом схоже с назначением

векторных ВС — обработка больших массивов данных. В основе матричных систем

лежит

 матричный процессор (

array processor), состоящий из регулярного массива

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

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

Между матричными и векторными системами есть существенная разница. Мат-

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

что команды для обработки векторов — это более удобная для человека модель •

программирования, чем SIMD.

Структуру матричной вычислительной системы можно представить в виде,

показанном на рис. 13.10 [234].

Собственно параллельная обработка множественных элементов данных осуще-

ствляется

 массивом процессоров

 (МПр). Единый поток команд, управляющий об-

работкой данных в массиве процессоров, генерируется

 контроллером массива


background image

5 6 4 Глава 13. Вычислительные системы класса SIMD

Рис. 13.10. Обобщенная модель матричной SIMD-системы

процессоров

 (КМП). КМП выполняет последовательный программный код, реали-

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

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

 шине широковещательной рассылки.

 Поскольку выпол-

нение операций условного перехода зависит от результатов вычислений, ре-

зультаты обработки данных в массиве процессоров транслируются в КМП,

проходя по

 шине результата.

Для обеспечения пользователя удобным интерфейсом при создании и отладке

программ в состав подобных ВС обычно включают

 интерфейсную ВМ

 (front-end

computer). В роли такой ВМ выступает универсальная вычислительная машина,

на которую дополнительно возлагается задача загрузки программ и данных в КМП.
Кроме того, загрузка программ и данных в КМП может производиться и напря-

мую с

 устройств ввода/вывода,

 например с магнитных дисков. После загрузки КМП

приступает к выполнению программы, транслируя в МПр по широковещательной
шине соответствующие SIMD-команды. .

Рассматривая массив процессоров, следует учитывать, что для хранения мно-

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

и модулями памяти. Таким образом, под термином

 массив процессоров

 понимают

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

Дополнительную гибкость при работе с рассматриваемой системой обеспечи-

вает механизм

 маскирования,

 позволяющий привлекать к участию в операциях

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

во время выполнения команды простаивают.


background image

Матричные вычислительные системы  5 6 5

Интерфейсная ВМ

Интерфейсная ВМ (ИВМ) соединяет матричную SIMD-систему с внешним ми-

ром, используя для этого какой-либо из сетевых интерфейсов, например Ethernet,

как это имеет место в системе MasPar MP-1. Интерфейсная ВМ работает под уп-

равлением операционной системы, чаще всего ОС UNIX. На ИВМ пользователи
подготавливают, компилируют и отлаживают свои программы. В процессе выпол-

нения программы сначала загружаются из интерфейсной ВМ в контроллер управ-

ления массивом процессоров, который выполняет программу и распределяет ко-
манды и данные по процессорным элементам массива. В некоторых ВС, например
в Massively Parallel Computer MPP, при создании, компиляции и отладке программ

КМП и интерфейсная ВМ используются совместно.

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

СМ-2 в этом качестве выступает рабочая станция SUN-4, в системе MasPar —
DECstation 3000, а в системе МРР - DEC VAX-11/780.

Контроллер массива процессоров

Контроллер массива процессоров выполняет последовательный программный код,

реализует команды ветвления программы, транслирует команды и сигналы управ-
ления в процессорные элементы. Рисунок 13.11 иллюстрирует одну из возмож-
ных реализаций КМП, в частности принятую в устройстве управления системы
PASM.

Рис. 13.11. Модель контроллера массива процессоров [225]

При загрузке из ИВМ программа через интерфейс ввода/вывода заносится

в оперативное запоминающее устройство КМП (ОЗУ КМП). Команды для про-

цессорных элементов и глобальная маска, формируемая на этапе компиляции, так-

же через интерфейс ввода/вывода загружаются в ОЗУ команд и глобальной маски


Смотрите также файлы