- •Вычислительные системы
- •Систолические процессоры. Параллельная обработка данных.
- •Сравнение последовательных и параллельных алгоритмов
- •Конвейеры команд и данных
- •Буфер команд
- •Понятие архитектуры эвм
- •Архитектура эвм и языки программирования
- •Эвм Фон-Неймана
- •Показатель эффективности архитектурных свойств эвм.
- •Первое поколение (1949-1951[формирование поколений])
- •Второе поколение (1955-1966[формирование поколений])
- •Третье поколение эвм (1963 – 1965[формирование поколений])
Сравнение последовательных и параллельных алгоритмов
Для сравнения произвольных алгоритмов используем какой-либо исходный последовательный алгоритм, который получается из исходной задачи.
Умножение матрицы 4х4 на вектор 4х1 с помощью 5 СП (систолических процессоров) и использованием матрицы, повёрнутой на 135 градусов, занимает 14 тактов:
Буфер1 Буфер2 модель магазинной памяти (очереди)
|
|
|
B4 |
|
|
|
B3 |
|
|
|
B2 |
|
|
|
B1 |





|
|
|
|
|
|
|
|
|
|
|
A44 |
|
|
|
|
|
A34 |
|
0 |
|
|
|
A24 |
|
A33 |
|
|
|
A14 |
|
A23 |
|
A32 |
|
|
|
A13 |
|
A22 |
|
|
|
|
|
A12 |
|
A21 |
|
|
|
|
|
A11 |
|
|














Процессорное поле
|
|
|
|
|
|
Рис. Модель памяти при вычислении умножения матрицы на вектор с помощью СП. Вычисления начнутся с СП, помеченного кружочком. Шестой СП – резервный.
Матрица А записывается в следующем виде (как ленточная 5-диагональная матрица):
Аппаратным способом умножение реализуется поворотом этой матрицы на 135 градусов. Таким образом, диагонали встают вертикально, и появляется возможность для каждого СП работать с одной диагональю.
В указанной модели памяти значения из буфера1 каждый такт подаются по одному на СП, и далее по цепочке в фазе коммуникации между ними по стрелкам. На выходе из цепочки значения подаются каждый такт по одному в итоговые ячейки и там продвигаются.
Схема продвижения данных по процессорам:
|
Такт1 |
B1 |
|
|
|
|
|
|
Такт2 |
|
B1 |
|
|
|
|
|
Такт3 |
B2 |
|
B1 |
|
|
|
|
Такт4 |
|
B2 |
|
B1*a11 |
|
|
………………………………………………………………. и т.д.
Всего при непосредственном подсчёте – 14 тактов.
|
Алгоритмы |
Операция * |
Операция + |
Операция ->(пересылка) |
|
Последовательный |
4*4 (4 элемента в 4 столбцах) |
4*4 |
6*4*4 |
|
Параллельный |
14 |
14 |
14 |
Время передачи данных для задачи умножения матрицы 4х4 на вектор 4х1
Реализация умножения с накоплением:
а -> рег1
b -> рег2
рег1 * рег2 -> c
c -> рег1
S -> рег2
рег1 + рег2 -> S
Итого (3 + 3) операции на умножение с накоплением.
Критерии сравнения параллельных и последовательных алгоритмов:
Абсолютное время выполнения

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

Потенциально возможное ускорение вычислений
Для последовательного алгоритма используется 1 ПЭ, его ускорение будет 1. Для параллельного в данной задаче используется 5 ПЭ, и теоретически возможное максимальное ускорение – в 5 раз. Однако процессорное время используется не полностью, притом процессоры работают через один, поэтому на самом деле ускорение меньше.
Вычислим приблизительное ускорение параллельного алгоритма с 5 СП. Пусть:



(в процентах)
Тогда

то есть на малых данных преимущества параллельного алгоритма не сказываются.
Качественный критерий
IV
III
II
N/lgN
N




U
N (кол-во ПЭ)
log2N
I
I – неправильный результат
II – область оптимистического ускорения: алгоритм можно улучшить
III – область нормального ускорения
IV – область оптимистического ускорения: алгоритм можно улучшить
log25 = 2.3 (примерно), то есть полученный результат 1.8 находится в области пессимистического ускорения, и алгоритм можно улучшить.
