ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.12.2021
Просмотров: 2446
Скачиваний: 7
Векторные и векторно-конвейерные вычислительные системы 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
поступают нулевые элементы векторов. Одновременно первые элементы
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. В принципе сцепление векторов можно
Матричные вычислительные системы 5 6 3
реализовать и в векторных процессорах типа «память-память», но для этого необ-
ходимо повысить пропускную способность памяти. Без сцепления необходимы три
«канала»: два для входных потоков операндов и один — для потока результата. При
использовании сцепления требуется обеспечить пять каналов: три входных и два
выходных.
Завершая обсуждение векторных и векторно-конвейерных ВС, следует отме-
тить, что с середины 90-х годов прошлого века этот вид ВС стал уступать свои
позиции другим более технологичным видам систем. Тем не менее одна из послед-
них разработок корпорации NEC (2002 год) — вычислительная система «Модель
Земли» (The Earth Simulator), — являющаяся на сегодняшний момент самой про-
изводительной вычислительной системой в классе, по сути представляет собой
векторно-конвейерную ВС. Система включает в себя 640 вычислительных узлов
по 8 векторных процессоров в каждом. Пиковая производительность суперкомпь-
ютера превышает 40 TFLOPS.
Матричные вычислительные системы
Назначение
матричных вычислительных систем
во многом схоже с назначением
векторных ВС — обработка больших массивов данных. В основе матричных систем
лежит
матричный процессор (
array processor), состоящий из регулярного массива
процессорных элементов (ПЭ). Организация систем подобного типа на первый
взгляд достаточно проста. Они имеют общее управляющее устройство, генериру-
ющее поток команд, и большое число ПЭ, работающих параллельно и обрабатыва-
ющих каждый свой поток данных. Однако на практике, чтобы обеспечить доста-
точную эффективность системы при решении широкого круга задач, необходимо
организовать связи между процессорными элементами так, чтобы наиболее полно
загрузить процессоры работой. Именно характер связей между ПЭ и определяет
разные свойства системы. Ранее уже отмечалось, что подобная схема применима
и для векторных вычислений.
Между матричными и векторными системами есть существенная разница. Мат-
ричный процессор интегрирует множество идентичных функциональных блоков
(ФБ), логически объединенных в матрицу и работающих в SIMD-стиле. Не столь
существенно, как конструктивно реализована матрица процессорных элементов —
на едином кристалле или на нескольких. Важен сам принцип — ФБ логически ском-
понованы в матрицу и работают синхронно, то есть присутствует только один поток
команд для всех. Векторный процессор имеет встроенные команды для обработки
векторов данных, что позволяет эффективно загрузить конвейер из функциональ-
ных блоков, В свою очередь, векторные процессоры проще использовать, потому
что команды для обработки векторов — это более удобная для человека модель •
программирования, чем SIMD.
Структуру матричной вычислительной системы можно представить в виде,
показанном на рис. 13.10 [234].
Собственно параллельная обработка множественных элементов данных осуще-
ствляется
массивом процессоров
(МПр). Единый поток команд, управляющий об-
работкой данных в массиве процессоров, генерируется
контроллером массива
5 6 4 Глава 13. Вычислительные системы класса SIMD
Рис. 13.10. Обобщенная модель матричной SIMD-системы
процессоров
(КМП). КМП выполняет последовательный программный код, реали-
зует операции условного и безусловного переходов, транслирует в МПр команды,
данные и сигналы управления. Команды обрабатываются процессорами в режиме
жесткой синхронизации. Сигналы управления используются для синхронизации
команд и пересылок, а также для управления процессом вычислений, в частности
определяют, какие процессоры массива должны выполнять операцию, а ка-
кие — нет. Команды, данные и сигналы управления передаются из КМП в
массив процессоров по
шине широковещательной рассылки.
Поскольку выпол-
нение операций условного перехода зависит от результатов вычислений, ре-
зультаты обработки данных в массиве процессоров транслируются в КМП,
проходя по
шине результата.
Для обеспечения пользователя удобным интерфейсом при создании и отладке
программ в состав подобных ВС обычно включают
интерфейсную ВМ
(front-end
computer). В роли такой ВМ выступает универсальная вычислительная машина,
на которую дополнительно возлагается задача загрузки программ и данных в КМП.
Кроме того, загрузка программ и данных в КМП может производиться и напря-
мую с
устройств ввода/вывода,
например с магнитных дисков. После загрузки КМП
приступает к выполнению программы, транслируя в МПр по широковещательной
шине соответствующие SIMD-команды. .
Рассматривая массив процессоров, следует учитывать, что для хранения мно-
жественных наборов данных в нем, помимо множества процессоров, должно при-
сутствовать и множество модулей памяти. Кроме того, в массиве должна быть реа-
лизована сеть взаимосвязей, как между процессорами, так и между процессорами
и модулями памяти. Таким образом, под термином
массив процессоров
понимают
блок, состоящий из процессоров, модулей памяти и сети соединений.
Дополнительную гибкость при работе с рассматриваемой системой обеспечи-
вает механизм
маскирования,
позволяющий привлекать к участию в операциях
лишь определенное подмножество из входящих в массив процессоров. Маскиро-
вание реализуется как на стадии компиляции, так и на этапе выполнения, при этом
процессоры, исключенные путем установки в ноль соответствующих битов маски,
во время выполнения команды простаивают.
Матричные вычислительные системы 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]
При загрузке из ИВМ программа через интерфейс ввода/вывода заносится
в оперативное запоминающее устройство КМП (ОЗУ КМП). Команды для про-
цессорных элементов и глобальная маска, формируемая на этапе компиляции, так-
же через интерфейс ввода/вывода загружаются в ОЗУ команд и глобальной маски