Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоргалка / hpory.docx
Скачиваний:
140
Добавлен:
15.02.2014
Размер:
622.63 Кб
Скачать

23. Концепция параллельной обработки данных.

Необходимость параллельной обработки может возникнуть по следующим причинам:

1.Велико время решения данной задачи.

2.Мала пропускная способность системы.

3.Необходимо улучшение использования системы.

Для распараллеливания необходимо соответствующим образом организовать вычисления. Сюда входят:

  • составление параллельных программ;

  • автоматическое обнаружение параллелизма.

Рассмотрим граф, описывающий последовательность процессов большой программы.

Граф процессов программы

Ускорение обработки данных

U-ускорение на многопроцессорных системах Ts-время при однопроцессорной обработки Tm-время при многопроцессорной обработки.

Условия параллельного выполнения процессовгде Æ - пустое множество Означает, что входные данные(Rij) одного процесса не должен модифицироваться др. процессом, ни какие 2 процесса не должны иметь общие переменные. Wij-выходные данные.

Для использования скрытой параллельной обработки требуются преобразования программных конструкций, таких как:

уменьшение высоты деревьев арифметических выражений;

преобразование линейных рекуррентных соотношений;

замена операторов;

преобразование блоков IF и DO к каноническому виду;

распределение циклов.

Уменьшение высоты дерева

(((a+b)+c)+d) h = 3

(a+b)+(c+d) h = 2

Замена операторов

Исходный блок операторов присваивания:

X=BCD+E

Y=AX

Z=X+FG Ts = 6 при n = 1

Путем замены операторов можно получить следующий блок:

X=BCD+E

Y=ABCD+AE

Z=BCD+E+FG Tm = 3 при n = 5

Этот блок может быть вычислен параллельно при использовании 5 процессоров за три шага с ускорением обработки

U = Ts /Tm = 6/3 = 2

24. Концепция конвейерной обработки

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

Если транспортер несет аналогичные, но не тождественные изделия, то это – последовательный конвейер; если же все изделия одинаковы, то это – векторный конвейер.

Конвейерная обработка в общем случае основана на разделении подлежащей исполнению функции на более мелкие части, называемые ступенями.

Последовательный конвейер

Первый результат на выходе конвейера появляется спустя время: (время разгона конвейера)

, а последующие с интервалами tj

Ускорение обработки в данном устройстве измеряется отношением времени Тs, необходимого для последовательного выполнения L заданий (т.е. выполнение Д циклов на одной обрабатывающей ступени), ко времени Тр выполнения той же обработки на конвейере. Обозначим через ti время обработки на i-ой ступени, а через tj – соответствующее время для самой медленной ступени. Эффективность конвейера:

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

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

Векторная команда реализуется с помощью специального управляющего вектора. Если n-й разряд управляющего вектора установлен в 1, то операция Cn = Аn + Вn выполняется и Сn записывается в результирующий вектор.

По мере вычисления адресов пары операндов могут непрерывно вводиться в арифметическое устройство. В такой конвейерной архитектуре требуются регистры или управляющие векторы, хранящие необходимую информацию до тех пор, пока можно начать выполнение команды.

Если длина обрабатываемого векторного поля равна l, а время обработки на самой медленной ступени равно tb, то общее время выполнения на конвейере векторной команды составляет tvp = ts + tf +(l - 1) tb

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

Соседние файлы в папке шпоргалка