Слайд 1Векторные процессоры и Cray-2
Выполнил ст. гр. 9307 Джабаров Р.Р.
Слайд 2Векторный процессор
Векторный процессор — это процессор, в котором операндами некоторых
команд могут выступать упорядоченные массивы данных — векторы. Отличается от
скалярных процессоров, которые могут работать только с одним операндом в единицу времени.
Слайд 3Иллюстрация скалярной обработки
Простой пример попарного сложения двух наборов по 10
чисел. При "обычном" программировании используется цикл, который берёт пары чисел
последовательно, и складывает их:
Повторить цикл 10 раз
прочитать следующую инструкцию и декодировать
получить первое слагаемое
получить второе слагаемое
сложить
сохранить результат
конец цикла
Слайд 4Иллюстрация векторной обработки
прочитать следующую инструкцию и декодировать
получить 10
первых слагаемых
получить 10 вторых слагаемых
сложить
сохранить результат
Таким образом, математические операции выполняются гораздо быстрее, основным ограничивающим фактором становится время, необходимое для извлечения данных из памяти.
Слайд 5Размещение в памяти матрицы 4x4
Размещение в памяти по строкам
Размещение в памяти по столбцам
Перемещение по строке
(шаг по индексу =1)
Перемещение
по столбцам
(шаг по индексу =4)
Перемещение по строке
(шаг по индексу =4)
Перемещение по столбцам
(шаг по индексу =1)
Слайд 6Векторный процессор (векторно-параллельная обработка)
Векторно-параллельный процессор. Используется n операционных
блоков
Память
a0
a1
an-1
b0
b1
bn-1
c0
c1
Cn-1
C=A+B
A=(a0, a1,…an-1)
B=(b0,
b1, … bn-1)
Операнды – массивы данных
Векторно-параллельные системы – несколько Floating
point EU.
Векторно-конвейерные – один Floating point EU.
Слайд 7Векторный процессор (векторно-конвейерная обработка)
Память
a0
a1
an-1
b0
b1
bn-1
c0
c1
Cn-1
a0,b0
Память
a0
a1
an-1
b0
b1
bn-1
c0
c1
Cn-1
a1,b1
a0,b0
Память
a0
a1
an-1
b0
b1
bn-1
c0
c1
Cn-1
a2,b2
a1,b1
b2
a2
a3b3
Используется один конвейерный блок для выполнения операций
с плавающей запятой
t
t+1
t+2
c0
Слайд 8Параллельная обработка несколькими конвейерными устройствами
+
а11 b11
a12 b12 a13 b13
a14 b14
а21 b21 a22 b22 a23 b23 a24 b24
а31 b31 a32 b32 a33 b33 a34 b34
а41 b41 a42 b42 a43 b43 a44 b44
Это наиболее распространенные системы
c0
c1
c2
c3
Слайд 9Векторная обработка память-память
Элементы векторов поочередно вызываются из памяти и срaзу
направляются на EU. Результаты, появляющиеся на выходе, сразу же заносятся
в память.
v0
v1
v3
v7
a0
b0
c0
Vector register
Memory with interleaving
Слайд 10Векторная обработка регистр-регистр
Операнды снaчала загружаются из памяти в векторные регистры
(v-registers). V-register – группа скалярных регистров, объединенных в очередь
типа FIFO. Хранит 500 – 100 FP-чисел (часто 64).
Операция выполняется над векторами, находящимися в v-регистрах.
Результат заносится в v-регистр.
Преимущества векторных процессоров типа “память-память” – возможность обработки длинных векторов.
Недостаток – интервал между инициализацией команды и появлением первого результата на выходе EU (время запуска).
Время работы T= s + α×N
s – время запуска,
α - константа, зависящая от команды (1/2, 1, 2)
N – длина вектора
В современных системах доминирует обработка “регистр - регистр”.
Слайд 11Регистр максимальной длины вектора
Регистр максимальной длины вектора фиксирует максимальное число
элементов вектора, которое может быть одновременно обработано аппаратурой процессора.
Этот регистр используется при разделении очень длинных векторов на сегменты, длина которых соответствует максимальному числу элементов, обрабатываемых аппаратурой за один прием.
Слайд 12Регистр маски
Регистр маски используется при выполнении операций, в которых должны
участвовать не все элементы векторов.
В регистре маски каждому элементу
вектора соответствует один бит.
В операции участвуют только те элементы, бит маски которых установлен в единицу.
Бит маски обеспечивает условие участия соответствующего элемента вектора в операции .
Этот регистр используется также в операциях уплотнения/развертывания (compress/expand).
Compress – незамаскированные элементы вектора из вектора-источника размещаются в регистре-приемнике.
Expand - из регистра-источника размещаются в незамаскированные элементы вектора-приемнике
Слайд 13Операции уплотнения / развертывания
Уплотнение/Развертывание
Слайд 14Регистр вектора индексов
Элементы векторов в памяти расположены регулярно. Для адресации
используется значение шага по индексу.
Если вектор нужно сформировать из нерегулярных
элементов (расположенных в другом порядке) используется регистр вектора индексов.
Элемент с номером i содержит индекс той позиции v-регистра, куда нужно поместить i-й элемент исходного массива.
Example 1:
for (i=0; iK and M – index vector registers
Слайд 15Операции упаковки/распаковки
K[i]
M[i]
Слайд 16Примеры векторно-конвейерных систем
Типичным представителем векторно-конвейерных систем является суперкомпьютер Сгау-1 и
Cray-2.
Примером более современных векторно-конвейерных вычислительных систем является разработанный в начале
1990-х годов в той же фирме суперкомпьютер Cray T90.
Вычислительная систему Earth Simulator компании NEC.
Слайд 17Cray 2
Cray-2 — векторный суперкомпьютер, выпускавшийся компанией Cray Research с
1985 года. Он был самым производительным компьютером своего времени, обогнав
по производительности другой суперкомпьютер, Cray X-MP. Пиковая производительность Cray-2 составляла 1,9 Гфлопс. Только в 1990 году этот рекорд был побит суперкомпьютером ETA-10G.
Слайд 18История Cray 2
Сеймур Крэй приступил к созданию нового суперкомпьютера —
Cray-2 — ещё до окончания доводки предыдущей модели — Cray-1,
то есть примерно в 1976 году.
В 1981 году Сеймур Крэй внес радикальное предложение по конструкции Cray-2. Он предложил поместить весь компьютер в инертную жидкость под названием Fluorinert (англ.) компании 3M
Cray-2 был представлен публике в 1985 году.
Слайд 19Характеристики
Процессор: 2 или 4 векторных процессора
Элементная база: ИС с 16 логическими вентилями, эмиттерно-связанная логика на биполярных транзисторах
Время
такта: 4.1 наносекунды
Объём памяти: 256 миллион 64-разрядных слов
Охлаждение: жидкостное, с полным погружением
Операционная
система: UNIX-подобная Unix и Cray Operating System
ПО: два компилятора языка Fortran: CFT2 и CFT77 с автоматической векторизацией кода, компилятор языка C, макро-ассемблер CAL, утилиты и библиотеки для работы с устройствами ввода-вывода и организации исполнения задач
Энергопотребление: 195 кВт
Габариты: высота — 114.3 см, диаметр — 134.6 см, 14 вертикальных колонн-стоек, собранных в дугу длиной 300 градусов
Слайд 20Использование
Летом 1985 года первый экземпляр был поставлен в Ливерморскую национальную лабораторию
Cray-2
использовался в NASA
Исследования в области энергетики
Атмосферные и океанические исследования
Квантовая химия
Искусственный интеллект
Генная
инженерия
Молекулярная динамика
Разработка технологического процесса
Слайд 21Программное обеспечение
Cray-2 OS основывается на проверенной UNIX System V.
Cray-2 предоставляет
2 Fortran компилятора: CFT v.2 и CFT77
Научная библиотека подпрограмм оптимизирована
для Cray-2
Многозадачная библиотека позволяет пользователю разбиение приложения на параллельно выполняемые задачи
Широкий выбор системных утилит для поддержки интерактивной и пакетной обработки
Компилятор языка С, который обеспечивает поддержку системного программного обеспечения, написанного на языке C
CAL, макроассемблер CRAY, обеспечивает доступ ко всем CRAY-2 инструкциям