Редактирование: Параллельная Обработка Данных, 08 лекция (от 23 октября)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.

Текущая версия Ваш текст
Строка 1: Строка 1:
-
[[Параллельная Обработка Данных, 07 лекция (от 16 октября)|Предыдущая лекция]] | [[Параллельная Обработка Данных, 09 лекция (от 30 октября)|Следующая лекция]]
+
==Вектороно конвеерные компьютеры==
-
 
+
-
==Векторно-конвейерные компьютеры==
+
Машины интересные по многим причинам. Первые машины с которыми стало ассоциироваться понятие суперкомпьютер.
Машины интересные по многим причинам. Первые машины с которыми стало ассоциироваться понятие суперкомпьютер.
-
1976 год Cray Research выпускает первый компьютер относящийся к этому классу -- Cray 1. Выпускались машины до начала 90 годов. Они были чрезвычайно дороги, как все уникальное. Им приходилось бороться с массовой продукцией. Коэффициент производительность/стоимость был не в пользу векторных машин. Мало кто смотрел на то, что использовать другие машины неудобней, писать программы для них сложнее.. Про эти машины забыли, вспоминали их только пользователи, которые с ними общались - писать программы для них было удовольствием. Мы уже говорили что бывает пиковая, а бывает реальная производительность, и этот разрыв для современных машин огромен. Векторные машины позволяют написать программы с 70- 50 % эффективности, то есть они позволяют реально сократить это разрыв. В то время как у современных машин -- 10 процентов.
+
1976 год Cray Research выпускает первый компьютер относящийся к этому классу -- Cray 1. Выпускались машины до начала 90 годов. Они были чрезвычайно дороги, как все уникальное. Им приходилось бороться с массовой продукцией. Коэффицент производительность/стоимость был не в пользу векторных машин. Мало кто смотрел на то, что использовать другие машины неудобней, писать программы для них сложнее.. Про эти машины забыли, вспоминали их только пользователи, которые с ними общались - писать программы для них было удовольствием. Мы уже говорили что бывает пиковая, а бывает реальная производительность, и этот разрыв для современных машин огромен. Векторные машины позволяют написать программы с 70- 50 % эффективности, то есть они позволяют реально сократить это разрыв. В то время как у современных машин -- 10 процентов.
С направлением распрощались, но было ожидание возвращения. Оно и вернулось, в 2002 году. Японская фирма NEC выпустила EarthSimulator. Там была смесь технологий, но каждый элементарный процессор был векторным. 3 года подряд EarthSimulator занимал первое место в топ500, сейчас он в районе 15 места.
С направлением распрощались, но было ожидание возвращения. Оно и вернулось, в 2002 году. Японская фирма NEC выпустила EarthSimulator. Там была смесь технологий, но каждый элементарный процессор был векторным. 3 года подряд EarthSimulator занимал первое место в топ500, сейчас он в районе 15 места.
Посмотрим все это на примере компьютера Cray c90.
Посмотрим все это на примере компьютера Cray c90.
Строка 9: Строка 7:
*Функциональное устройство
*Функциональное устройство
**скалярное
**скалярное
-
**конвейерное (операция делится на несколько микроопераций, кол-во микроопераций == число ступенек, конвейер по ступенькам)
+
**конвеерное (операция делится на несколько микроопераций, кол-во микроопераций == число ступенек, конвеер по ступенькам)
*команда
*команда
**скалярная(если все аргументы скаляры)
**скалярная(если все аргументы скаляры)
Строка 15: Строка 13:
**векторный
**векторный
*компьютер
*компьютер
-
**конвейерный
+
**конвеерный
**векторный
**векторный
**скалярный
**скалярный
Строка 34: Строка 32:
64 = 7 7 1
64 = 7 7 1
-
Последовательная выборка.Если на разных тактах обращение к разным секциям конфликтов не возникает. При доступе в одну и ту же секцию конфликт решается задержкой в 1 такт.
+
Последовательня выборка.Если на разных тактах обращение к разным секциям конфликтов не возникает. При доступе в одну и ту же секцию конфликт решается задержкой в 1 такт.
Одна и та же секция, одна и та же подсекция -- до 6 тактов для разрешения конфликтов.
Одна и та же секция, одна и та же подсекция -- до 6 тактов для разрешения конфликтов.
Строка 48: Строка 46:
*регистровая структура
*регистровая структура
**Основной набор(только с них могут брать данные функциональные устройства)
**Основной набор(только с них могут брать данные функциональные устройства)
-
***Регистры А(адресные), 32 разряда, 8 штук, предназначены для адресной арифметики
+
***Регистры А(дресные), 32 разряда, 8 штук, преднзначены для адресной арифметики
***Регистры S, скалярные, 64 разряда, 8 штук
***Регистры S, скалярные, 64 разряда, 8 штук
***Регистры V, векторные. Каждый регистр может хранить вектор целиком. Он 64 разрядный, но может хранить 128 элементов. И таких регистров может быть 8 штук.
***Регистры V, векторные. Каждый регистр может хранить вектор целиком. Он 64 разрядный, но может хранить 128 элементов. И таких регистров может быть 8 штук.
Строка 63: Строка 61:
4 группы фу
4 группы фу
**адресные:Их всегда два.Работают с целочисленными 32 разрядными. Только скалярные операции.
**адресные:Их всегда два.Работают с целочисленными 32 разрядными. Только скалярные операции.
-
**скалярные: 4, 64 разр, выполняют скалярные операции. Сложение, умножение, логика. Выполняют только скалярные операции
+
**скалярные: 4, 64 разр, выполняют скалярные операции. Сложение, умножение, логика. Выпонят только скалярные оерации
-
**Векторные фу. Их число меняется в зависимости конфигурации, где-то 5-7. Выполняют только векторные операции, целочисленные и логические. Вещественная обработка сюда не входит
+
**Векторные фу. Их числоо меняется в зависимости конфигурации, где-то 5-7. Выпонят только векторные операции, целочисленные и логические. Вещественная обработка сюда не входит
**ус-ва для работы с вещественной арифметикой:3(сложение/вычитание, умножение, обратная величина), 64 разр.
**ус-ва для работы с вещественной арифметикой:3(сложение/вычитание, умножение, обратная величина), 64 разр.
-
Разнообразие устройств большое, соответственно и команды разнообразны. Только команд сложения 5(для 32 разрядов на адресных фу, для 64 на скалярных итд)
+
Разнообразие устройств большое, соответственно и комманды разнообразны. Только команд сложения 5(для 32 разрядов на адресных фу, для 64 на скалярных итд)
-
Внутри каждого фу, которое выполняет векторную команду скрыты два конвейера, которые могут работать параллельно. Четные элементы идут на нулевой конвейер, нечетные на первый конвейер. "Бесплатно" получаем удвоение производительности. Пустячок, а приятно.
+
Внутри каждого фу, которое выполняет векторную комманду скрыты два конвеера, которые могут работать параллельно. Четные элементы идут на нулевой конвеер, нечетные на первый конвеер."Забесплатно" получаем удвоение производительности. Пустячок, а приятно.
Еще одна особенность -- аи = би + ци*с.
Еще одна особенность -- аи = би + ци*с.
Сколько тактов?
Сколько тактов?
По тупому, сначала умножить, потом сложить.
По тупому, сначала умножить, потом сложить.
-
Сначала вычислим все что потребуется для умножения. л* -- заполняем конвейер. То есть л* + н - 1. Можно приступать к сложению. + (л_+) + н -1 тактов. Режим неоптимальный. Чтобы этого избегать реализована возможность зацепления функциональных устройств -- выход какого-либо фу сразу подается на вход другого фу. В таком режиме : л*+(л_+) + н - 1. Почти все подсистемы могут работать в таком режиме "макроконвейера".
+
Сначала вычислим все что потребуется для умноженя. л* -- заполняем конвеер. То есть л* + н - 1. Можно приступать к сложению. + (л_+) + н -1 тактов. Режим неоптимальный. Чтобы этого избегать реализована возможность зацепления функциональных устройств -- выход какого-либо фу сразу подается на вход другого фу. В таком режиме : л*+(л_+) + н - 1. Почти все подсистемы могут работать в таком режиме "макроконвеера".
Строка 78: Строка 76:
*конвейерные фу
*конвейерные фу
*независимые фу
*независимые фу
-
*векторная обработка(разница во времени с скалярным режимом может достигать 10 раз)
+
*векторная обработка(разница во времени с скаярным режимом может достигать 10 раз)
-
*дублирование конвейеров в векторных командах
+
*дублирование конвееров в векторных коммандах
*зацепление фу
*зацепление фу
*до 16 процессоров
*до 16 процессоров
Строка 90: Строка 88:
Для начала 90 это была фантастическая производительность.
Для начала 90 это была фантастическая производительность.
-
Попытаемся понять, что в этой схеме мешает приблизиться к пиковой производительности.
+
Попытамся понять, что в этой схеме мешает приблизиться к пиковой производительности.
Выпишем список мешающих причин:
Выпишем список мешающих причин:
-
*Векторизация программы - у нас есть программа на какомто языке высокого уровня.Чтобы она эффективно исполнялась надо использовать векторные фу. Компилятор в некоторых случаях может сообразить, что можно использовать векторную команду. Но для этого должно быть выполнено минимум два условия -- должны быть векторы данных(из линейной память выбираются данные с одинаковым шагом одинакового типа--строки и столбцы многомерных массивов, диагональ многомерного массива(с шагом н+1), а вот под диагональные элементы уже вектором не будут, матрица целиком -- тоже вектор) и над ними должны выполняться независимые однотипные операции(сложный момент. однотипность - над всеми элементами надо запускать одну и ту же операцию.независимость. a[i] = a[i]+b[i] -- все хорошо. а вот a[i] = a[i-1]+b[i]- ситуация на порядок хуже, векторизовать нельзя)
+
*Векторизация программы - у нас есть программа на какомто языке высокого уровня.Чтобы она эффективно исполнялась надо использовать векторные фу. Компилятор в некоторых случаях может сообразить, что можно использовать векторную команду. Но для этого должно быть выполнено минимум два условия -- должны быть векторы данных(из линейной память выбираются данные с одинаковым шагом одинакого типа--строки и столбцы многомерных массивов, диагональ многомерноого массива(с шагом н+1), а вот под диагональные элементы уже векторм не будут, матрица целиком -- тоже вектор) и над ними должны выполняться независимые однотипные операции(сложный момент. однотипность - над всеми элементами надо запускать одну и ту же операцию.независимость. a[i] = a[i]+b[i] -- все хорошо. а вот a[i] = a[i-1]+b[i]- ситуация на порядок хуже, векторизовать нельзя)
-
 
+
-
{{Параллельная Обработка Данных}}
+
-
{{Lection-stub}}
+

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Разделы