Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТВП / TVP.doc
Скачиваний:
67
Добавлен:
12.04.2015
Размер:
391.17 Кб
Скачать

Искусственный параллелизм.

  1. Преобразование параллелизма множества объектов в параллелизм независимых ветвей.

Пусть задача состоит в том , что по одной и той же программе должна быть обработана информация о большом количестве (r) однотипных объектов. Предположим также, что эта задача должна быть решена с помощью ВС ориентированной на параллелизм множества ветвей причем структура системы такова, что наибольшая эффективность будет достигнута при ширине всех ярусов равной b где b<<r. Граф ярусно параллельной формы задачи в ее исходной постановке имеет вид.

В нулевом ярусе расположены фиктивные ветви программы обозначенные прм.

Это ветви приема информации соответственно для 1,2...r-ого яруса объектов. Также как фиктивные ветви расположение в более низких ярусах и соответствующие выводу результатов по 1,2...r-му объектам эти ветви исполняются специализированной аппаратурой системы (внешние устройства, каналы) а для основной процессорной части системы длины этих ветвей равны нулю.

Основная обработка информации для каждого из r объектов представлена на рисунке в виде одной ветви параллелизм независимых ветвей не обладает вследствие чего не может быть представлена в виде нескольких подветвей которые можно было бы расположить в одном ярусе. Эти ветви информационно между собой не связаны, но связаны по управлению, поскольку исполняются все по одинаковой программе. В связи с этим данные ветви расположены в разных ярусах ЯПФ и общая длина графа равна Lr.

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

Прежде всего, ветви обрi разобьем на подветви так чтобы длины подветвей были примерно одинаковы L1  L2  ...  Lb  L/b.

Некоторая неравномерность в длинах подветвей возникает за счет того что минимальным дискретном разделения могут быть машинные операции длины которых возможно неодинаковы а также за счет того, что длины отдельных подветвей возможно зависят от исходных данных. Кроме того, при использовании определенных структур ВС ориентированных на параллелизм независимых ветвей может потребоваться минимизация или хотя бы выравнивание объемов информации передаваемых от j-ой ветви к j+1 .

Заметим что две ветви обрj1 i1 и обрj2 i2 при i1=i2 и j1<>j2 связаны между собой информационно при i1<>i2 и j1=j2 они связаны обшей программой, а при i1<>i2 и j1<>j2 gjkyjcnm. Ytpfdbcbvs/

После преобразования граф ЯПФ содержит r+b-1 непустых ярусов. Ширина каждого из этих ярусов кроме первых (b-1) и последних (b-1) ярусов равна в точности b. Обшая длина графа при этом равна LG = L1 + ... max {L1 , L2}+... +max { L1 , L2... Lb-1}+

+ (r-b+1) max { L1 , L2... Lb}+ max { L2 , L3... Lb}+ max { L3 , L4... Lb}+...+Lb.

Если L1  L2  ...  Lb  L/b то общая длина графа не превышает величину (r+b-1)/bL.Приняв при этом условие r>>b получим LG = L/b.

Представим себе ВС в виде соединения и машин. Непосредственно использовать в такой системе параллелизм множества объектов неудобно по многим причинам.

Прежде всего, ясно что если бы мы просто попытались на каждую машину возложить обработку информации по r/n объектам то потребовалось бы какие-то дополнительные устройства системы которые распределяли бы между машинами входную информацию.

Скорее всего, для этого потребовалось бы дополнительная n+1 машина которая вела бы весь внешний обмен передавала бы принятую информацию другим и машинам и принимала от них информацию для передачи на выход эти излишние передачи информации требовали дополнительного времени и вели бы к снижению эффективности системы.

Главное же возражение состоит в том, что оно требует размещения в памяти каждой из машин своего экземпляра полной программы. Таким образом полный объем для хранения программной информации в системе был бы в и раз больше чем это необходимо причем в этой памяти хранилась бы и раз одна и та же информация. Если учесть что все n устройств всех и машин выполняли бы одни и те же операции, то станет ясно насколько неэффективно использовалась бы оборудование системы в этом случае.

Смысл выполненного выше преобразования программы состоит в преобразовании параллелизма множества объектов в параллелизм независимых ветвей, т. е. в тот вид параллелизм который более всего подходит для рассматриваемой системы. Приняв b=n работу системы далее организуют следующим образом.

Информацию обо всех r объектах будем принимать всегда в 1-ю машину если возможно, то принимать информацию по каждому следующему объекту будем после того как эта машина закончит использование входной информации по предыдущему объекту чтобы не увеличивать объем внутренней памяти необходимый для хранения входной информации и избежать необходимости модификации адресов. Эта же первая машина будет выполнять последовательно ветви обр1 , обр2 .....Закончив выполнение ветви обрi машина передает информацию этой ветви 2-ой машине , которая последовательно выполняет ветви обр12, обр22 ... обр1r. Последняя n-я машина последовательно выполняет ветви обрb2, обрb2 ... обрbr и ведет выдачу выходной информации.

Таким образом и машин ВС образуют как бы конвейер цикл работы которого равен max{ L1 , L2... Lb}+ где -- интервал времени в течении которого одновременно от каждой j-ой машины происходит передача информации к следующей машине при этом если в конце некоторого цикла от 1-й машины во 2-ую передаются результаты работы ветви обр1i то одновременно от 2-ой машины передаются в 3-ю результаты ветви обр2(i-1) и т. д.

Если LjL/b для j=1...b и если <<L/b то цикл работы конвейера немного превышает величину L/b.

Каждая из и машин системы хранит примерно 1/n часть программы. Суммарное количество программной информации хранимой в памяти ВС примерно такое же, как было бы в обычной ВМ небольшие дополнительные объемы памяти для хранения программы связаны с необходимостью организовывать обмен информацией между машинами и синхронизацию конвейера.

Условием применения рассмотренного способа преобразования является достаточно большая длинна L программы обработки информации по каждому из объектов. Если L мала, а необходимость применения ВС связана с очень большим рангом задачи r то разделить программу на необходимое количество примерно одинаковых подветвей может быть нельзя. Либо может оказаться, что подветви получаются слишком короткими и потери связанные с неравномерностью ветвей, а также на обмен информации и синхронизации несоразмерно велики.

Соседние файлы в папке ТВП