Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_Trsipv_Ch_2.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
12 Мб
Скачать
☆

6.1 Постановка задачи распараллеливания

Любая операция аj , входящая в состав участка  (выражения) представлена в виде:

аj = {j, j, in аj, out аj, wj, | in аj|, | wj | } (6)

| | - мощность (количество элементов, входящих в множество);

j - тип операции, определяет как выполнимое вычислительное действие, так и количество входных в операцию переменных.

in аj - множество переменных, являющихся входными в данный оператор аj;

out аj - множество результатов;

wj – множество номеров операций , использующих результаты данной j-ой операции;

j позволяет определить те выражения, на основании которых идентифицируется возможность выполнения данной j-ой операции на k-ый ярус ЯПФ.

Множество wj, использование которого определяет возможность вычленения последовательных операций на (к+1), (к+2), …, (к+n) ярусы ЯПФ.

Если обозначить через J множество номеров операций -го участка, то при

Wj = {j1, j2, j3, …, jn}

j J, j1 J, j2 J,, … , jn J

Требования для операций Ji

  1. j ji (операция не может использовать собственный результат).

  2. Для любой операции ji in aji aj 0. Таким образом, в Wj перечисляются номера всех операций, использующих результаты j.

  3. Любая операция ji является входящей в участок программы:

ji J.

Правила построения таблицы для распараллеливания

Метод распараллеливания предполагает формирование множества операций: *At , +At , pAt , -At.

Для каждого дискретного момента времени, сопоставляемого с некоторым ярусом ЯПФ, таким образом, цель метода распараллеливания состоит в формировании указанных множеств. Реализация метода выполняется на основе таблицы №1, формируемой в соответствии с формулой (6).

Таблица №1 – Правила формирования множеств для распараллеливания

№ n/n

Тип

операции

Входные

операнды

(dp1, dp2, …, dpn)

Результаты

dj

Wj

|in aj|

| wj|

Правила:

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

  2. Нумерация операций выполняется в порядке их следования в программе. Каждая строка в таблице формируется в соответствии с записью 1.

  3. Вычисления внутри каждого участка должно заканчиваться выполнением операции присваивания его результата некоторой переменной.

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

6.2 Условия формирования множества *Aк (функция f1 - функция двумерной модели)

  1. Готовность операции к выполнению (aj *Aк) :

*Aк =

Для (7) - данная операция aj представляет собой присваивание значений внешних по отношению к участку внутренним в этом участке именам.

Для (8) – Out paij - множество переменных результатов, сформированных на предшествующих ярусах от 0 до (k-1), которые используются при вычислении данной операции aj.

Результирующий вид:

In aj

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]