Узбекистан, nukus, qmu, 2013 |
Параллельное программирование — аппарат исследования операций
Определение 7. Функцию


Для заданных значение функции F в каждый момент времени t совпадает с числом одновременно (параллельно) выполняющихся в
этот момент работ.
Например, по диаграмме на 7.11,
т.е. для ,
функция F(2, 3, 3, 4, 7, 8, 6, 9, t) имеет вид, представленный на
рис. 7.13а.
Для допустимого расписания, определяемого набором значений
,
, функция F(2, 4, 3, 4, 8, 9, 7, 10, t)
имеет вид, представленный на рис. 7.13б.

Рис. 7.13. Графики функции: а — для ранних сроков окончания работ,,б — для некоторого допустимого расписания
Для графического представления функции F удобно пользоваться временной диаграммой, которая для второго случая, например, имеет вид, представленный на рисунке 7.14..
Пусть данный граф G, в котором учтены транзитивные связи, образует l полных множеств взаимно независимых работ (ПМВНР). (Каждая пара таких множеств может иметь непустое пересечение.) Обозначим ri, i = 1 , ... , l, число работ, образующих i -е полное множество и найдём
R = max {r1 , ... , rl}.
Тогда


Например, для графа на рис. 7.1 мы нашли ПМВНР {3,5,6,7},
включающее четыре
работы. Тогда существует допустимое расписание, например,
такое, при котором максимальное значение
плотности загрузки F равно четырём (рис. 7.15).
Таким образом, справедливо утверждение
Лемма. Минимальное число n процессоров одинаковой специализации и производительности (т.е. в однородной ВС), способных выполнить данный алгоритм за время T >= Tкр, не превышает R = max {r1 , ... , rl }, где ri , i = 1 , ... , l, — число работ, входящих в i -е ПМВНР, которое составлено по взвешенному графу G, соответствующему этому алгоритму.
Определение 8. Функцию

![[\theta _{1}, \theta _{2}] \subset [0,T]](/sites/default/files/tex_cache/7e7cf4bee445069ba8bd1c4f095b5050.png)

Функция Ф определяет объём работ (суммарное время их выполнения) на фиксированном отрезке их выполнения при заданном допустимом расписании.
Так, для отрезка времени на рис. 7.13а Ф = 10 ; для отрезка
времени [1, 3] на ррис. 7.13б Ф= 4 ; для
отрезка времени [2, 5] на рис. 7.15 Ф = 10 и т.д.
Определение 9. Функцию

![[\theta _{1}, \theta _{2}] \subset [0,T]](/sites/default/files/tex_cache/7e7cf4bee445069ba8bd1c4f095b5050.png)
Функция определяет минимально возможный объём работ, который при
данном T и при различных допустимых значениях
(расписаниях)
должен быть выполнен на отрезке времени
.
Это означает,
что как бы мы не планировали вычислительный процесс, который должен
быть
закончен к моменту времени T, т.е. какой бы набор
значений
мы не выбрали, объём работ, выполняемых на отрезке времени
,
не может быть меньше значения
.
Теорема 1. Для того чтобы T
было наименьшим временем выполнения данного
алгоритма однородной вычислительной системой, состоящей из n
процессоров,
либо чтобы n процессоров было достаточно для выполнения данного
алгоритма за время T, необходимо, чтобы для данного отрезка
времени выполнялось соотношение
![]() |
( 7.1) |
Доказательство. Нетрудно
видеть, что если при данном наборе — сроках окончания выполнения работ, в том
числе и при таком наборе,
при котором обеспечивается минимальное или заданное
,
для реализации алгоритма достаточно n процессоров, то
![\begin{align*}
\max_{t\in[0,T]}F(\tau_1 \dts \tau_m\,t)\le n.
\end{align*}](/sites/default/files/tex_cache/f261a17029508f1f97b6647838e9d5f6.png)
Отсюда, для любого отрезка времени

Необходимость, но не достаточность условия (7.1) покажем на примере. Пусть алгоритму соответствует граф G на рис. 7.16а. Пусть T=3, и одна из возможных диаграмм выполнения алгоритма — на рис. 7.16б.

Рис. 7.16. Пример: минимальная плотность загрузки не соответствует действительной: а — информационный граф, б — временная диаграмма загрузки
Оценим на основе (7.1) число n процессоров, достаточное для выполнения алгоритма в указанное время. Из (7.1) имеем общее соотношение
![]() |
( 7.2) |
Для получения полной оценки надо перебрать все отрезки т.е.
![]() |
( 7.3) |
Проанализируем все возможные отрезки . Находим
минимальное n = 2, удовлетворяющие (7.3). Однако из рисунка
видно, что не
существует плана выполнения работ на двух процессорах за время T=3.
Минимально достаточное число процессоров здесь n = 3.
Функция минимальной
загрузки отрезка времени является одним из
основных средств оценки предпринимаемых действий при решении задач
распараллеливания. Поэтому ниже будет дан алгоритм нахождения её значения.
Предварительно определим функцию

Тогда значение характеризует
условный объём части работы j на
отрезке времени
при условии
и при максимальном
смещении времени выполнения работы j влево (рис. 7.17а).
Значение характеризует
аналогичный объём работы j при
максимальном смещении времени выполнения работы j вправо. Это
соответствует,
например, ситуации, изображённой на рис. 7.17б.

Рис. 7.17. Нахождение минимальной плотности загрузки отрезка: все различные случаи соотношения времени выполнения работ и сроков
Если для работы j оба указанных выше значения функции отличны от нуля,
но не превышают значение tj и
,
то максимально разгрузить отрезок
от работы j можно смещением
времени его выполнения в сторону,
обеспечивающую меньшее из двух указанных выше значений
(рис. 7.17в).
Существуют два случая, когда работа j не может быть хотя бы
частично смещена
с отрезка
а) , в этом случае очевидно,
что
(рис. 7.17г), и объём работы j, выполняемой на отрезке,
совпадает с объёмом tj всей этой работы;
б) , в этом случае очевидно,
что
(рис. 7.17д), и объём части работы j, выполняемой на отрезке
совпадает со значением
.
Приведённый ниже алгоритм объединяет все возможные указанные выше случаи.
Алгоритм 4
нахождения значения функции .
1. Предполагаем, что для каждой работы j = 1, ... , m, известны
значения . Полагаем равным нулю значение переменной
2. Организуем последовательный анализ работ j = 1, ... , m.
3. Для каждой работы j полагаем
.
Конец алгоритма.
Выше было получено соотношение (7.2) , которое можно использовать для нижней оценки количества n процессоров, необходимых для выполнения данного алгоритма за время, не превышающее T.
Приведём аналогичное соотношение для нижней оценки минимального времени Т.
Теорема 2. Пусть заданный алгоритм выполняется на ВС, состоящей
из n процессоров,
и T* — текущее значение оценки снизу времени выполнения
алгоритма. Пусть на
отрезке времени
выполняется соотношение
.
Тогда минимальное время T выполнения алгоритма удовлетворяет соотношению
![]() |
( 7.4) |
Теоремы 1 и 2 на основе анализа такой локальной характеристики параллельного
алгоритма, как значение функции минимальной загрузки
отрезка, предлагают
способы оценки снизу ресурсов, необходимых для реализации каждого заданного
алгоритма:
- числа n процессоров при заданном ограничении на длительность T процесса;
- минимального времени T, необходимого для реализации данного алгоритма при заданном числе n процессоров.