Научная статья на тему 'Планирование вычислений в многопроцессорных системах с несколькими типами дополнительных ресурсов и произвольными процессорами'

Планирование вычислений в многопроцессорных системах с несколькими типами дополнительных ресурсов и произвольными процессорами Текст научной статьи по специальности «Математика»

CC BY
96
11
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МНОГОПРОЦЕССОРНАЯ СИСТЕМА / РАСПИСАНИЕ С ПРЕРЫВАНИЯМИ / РАСПРЕДЕЛЕНИЕ РЕСУРСОВ / ДИРЕКТИВНЫЕ ИНТЕРВАЛЫ / MULTIPROCESSOR SYSTEM / PREEMPTIVE SCHEDULE / RESOURCE ALLOCATION / DIRECTIVE INTERVALS

Аннотация научной статьи по математике, автор научной работы — Фуругян М. Г.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Computation planning in multiprocessor systems with some types of additional resources and arbitrary processors

The problem of constructing of feasible preemptive multiprocessor schedule is considered for a case where directive intervals are assigned, processors can have arbitrary performance, there are several types of additional resources and the durations of tasks depend lineary on the volume of additional resources allocated for them. We developed polinomial algorithms based on a reduction of the original problem to a network-flow problem and to a linear programming problem.

Текст научной работы на тему «Планирование вычислений в многопроцессорных системах с несколькими типами дополнительных ресурсов и произвольными процессорами»

3. Гаврилов Г.П., Сапоженко A.A. Задачи и упражнения по дискретной математике. М.: Физма-тлит, 2009.

4. Дискретная математика и математические вопросы кибернетики / Под ред. C.B. Яблонского, О.Б. Лу-панова. Т. 1. М.: Наука, 1974.

Поступила в редакцию 20.02.17

УДК 519.86

М. Г. Фуругян1

ПЛАНИРОВАНИЕ ВЫЧИСЛЕНИЙ В МНОГОПРОЦЕССОРНЫХ СИСТЕМАХ С НЕСКОЛЬКИМИ ТИПАМИ ДОПОЛНИТЕЛЬНЫХ РЕСУРСОВ И ПРОИЗВОЛЬНЫМИ ПРОЦЕССОРАМИ

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

Ключевые слова: многопроцессорная система, расписание с прерываниями, распределение ресурсов, директивные интервалы.

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

Настоящая статья является продолжением цикла работ автора по разработке алгоритмов планирования вычислений в многопроцессорных системах с дополнительными ресурсами. Подобная задача для случая, когда процессоры имеют одинаковые производительности и дополнительный ресурс отсутствует, рассматривалась в [1] и была сведена к задаче о максимальном потоке в сети специального вида. Задача с произвольными процессорами и произвольными директивными интервалами рассматривалась в [2], а задача с произвольными процессорами и одинаковыми директивными интервалами — в [3]. В [2, 3] наличие дополнительного ресурса не предполагалось. Задача минимизации времени выполнения сетевого комплекса работ, когда длительности выполнения работ являются функциями от вектора распределения ресурсов, а число процессоров не ограничено, рассматривалась в [4] и была сведена к задаче нелинейного программирования. Задача с одним типом дополнительного ресурса и идентичными процессорами решена в [5], с произвольными процессорами — в [6], а задача с идентичными процессорами и несколькими типами дополнительных ресурсов — в [7]. В [8] исследована задача оптимальной коррекции директивных интервалов в многопроцессорных системах с дополнительным ресурсом. Некоторые методы построения расписаний без прерываний, основанные на имитационном моделировании, описаны в [9], а основанные на муравьиных алгоритмах — в [10].

1 Факультет ВМК МГУ, доц.; ВЦ ФИЦ ИУ РАН, зав. сект., к.ф.-м.н., e-mail: rtsccasQya.ru

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

2. Постановка задачи. Рассматривается вычислительная система, состоящая из т процессоров £ типов. Производительность процессоров ^'-го типа равна а их число составляет т.,-,

г

1 ^ 3 ^ 12 тз = т- Предполагается, что «1 ^ «2 ^ • • • ^ Имеется множество заданий (работ) з=1

N = {1,... , п}. В каждый момент времени каждый процессор может выполнять не более одного задания, а каждое задание выполняется не более чем одним процессором. При выполнении заданий допускаются прерывания и переключения с одного процессора на другой. Предполагается, что прерывания и переключения не сопряжены с временными затратами. Для задания % € N установлен директивный интервал (Ьг;/г] (т.е. работа % может выполняться только в этом интервале).

Помимо процессоров в системе имеется К типов дополнительных невозобновляемых ресурсов. Суммарное количество к-то типа этого ресурса составляет 1 ^ к ^ К. Если заданию г выделено гц» единиц дополнительного ресурса к-го типа, то объем работы процессоров по выполнению

к

задания г составляет Qi = с^ — ^ Щкггк-, где

к= 1

Ггк € [0,пк], г € Ж, ггк < Як, 1 < к < К, (1)

гелг

К

ацс, ггк — заданные величины, ац~ ^ 0, с^ > 0, гц, ^ 0, с^ — ^ агкггк > 0. Таким образом,

к=1

Г К

Qi ^ — ^ О'гкТгкч 1 к=1

Требуется найти такое распределение ресурсов г®к, г € -/V, 1 ^ к ^ К, при котором существует допустимое расписание (т. е. такое расписание, при котором каждая работа полностью выполняется в своем директивном интервале), или установить, что такого распределения ресурсов не существует. При этом указанное распределение ресурсов должно удовлетворять ограничениям (1). Примеры подобных задач содержатся в [6, 8].

3. Задача с одинаковыми директивными интервалами. В этом пункте предполагается, что директивные интервалы всех работ совпадают. Без ограничения общности можно считать, что Ьг = 0, /г = .Р, '1 € N. Предполагается также, что с^ ^ Fst при всех i £ N (т.е. каждая работа может быть выполнена в директивном интервале любым процессором). Тогда, как следует из [3], необходимым и достаточным условием существования допустимого расписания в этом случае

г /К \ *

является выполнение неравенства ^ Яг ^ Р X) тз8з' или X) Ыг — X) агкг1к) ^ Р X) тз8з'

гедг ] = 1 ieNX• к= 1 ' 3 = 1

геИ к=1 геИ } = 1

г

Пусть ^г _ Р 12 тз8з = В- Тогда, по аналогии с [7], задача заключается в поиске такого ¿едг j=l

распределения ресурсов гц,, 1 € Ж, 1 ^ к ^ К, которое удовлетворяет системе ограничений

к

^2 агкГгк ^ -В, г Не ^ Як, (2)

г£И к=1 ге^

Таким образом, допустимое расписание существует тогда и только тогда, когда задача линейного программирования (2) имеет решение. Если задача (2) имеет решение г®к, г € N, 1 ^ к ^ К,

к

то определив = с^ — ^ агкг®к1 г £ ж применив алгоритм, описанный в [3], найдем допусти-

к= 1

мое расписание. Вычислительная сложность алгоритма Кармаркара решения задачи линейного программирования для случая, когда число ограничений не превосходит числа переменных п, составляет 0(п4'5 к^2(пТ)), где Т — максимальное значение числового параметра. В задаче (2) пК переменных и (пК + К + 1) ограничений. Вводя К + 1 фиктивную переменную, получаем, что вычислительная сложность решения задачи (2) составляет 0((пК)4>5 к^2 (пК Т1)), где Т\ — максимальное из чисел Гц,.. И и />'/,.. / ^ /V. 1 ^ к ^ К. Сложность алгоритма, описанного в [3] — 0(п).

к

Определим минимальную величину взвешенной суммы ^ (/?&, 1 ^ к ^ К, — заданные

к=1

величины) дополнительных ресурсов, при которой допустимое расписание существует. Рассмотрим задачу линейного программирования [7]:

к

пш1 (3)

Як,г и, ,, к=1

при ограничениях (1), (2). Если задача (3) разрешима, то для каждого ее решения г®к, г € N,

к

1 ^ к ^ К, существует допустимое расписание, а ^ РкЩ — минимально допустимая величи-

к= 1

на взвешенной суммы дополнительных ресурсов. Вычислительная сложность решения задачи (3) составляет 0((пК)4>5 ^2(пКТ2)), где Т2 — максимальное из чисел а^, г^, Б, /Зк и ! е 1 < к < К.

4. Задача с произвольными директивными интервалами. Теперь предположим, что директивные интервалы (¿»¿,/г] произвольные. Предложим два алгоритма решения поставленной задачи.

4.1. Алгоритм 1. Сначала рассмотрим задачу без дополнительных ресурсов, т. е. предположим, что объемы всех работ фиксированы и равны г € N. По аналогии с тем, как это сделано в [2, 6], построим потоковую сеть = (У^Ах) (рис. 1) с источником в и стоком и (V}. — множество узлов сети, А\ — множество дуг).

Рис. 1. Фрагмент сети С1

Пусть у0 < ?/1 < ... < ур, р < 2п, — разные по величине значения г € N. Опре-

делим интервалы I^ = (уи- 1,,Ун}-, 1 ^ Л. ^ р. Сеть представляет трехдольный граф с дополнительными источником 5 и стоком и. Первый уровень графа состоит из вершин % € N, соответствующих заданиям (будем называть эти вершины "заданиями"). Второй уровень состоит из вершин д/у, 1 ^ к ^ р, 1 ^ ] ^ которые соответствуют всем возможным комбинациям различных типов процессоров и интервалов (будем называть эти вершины "процессорами-

интервалами"). Третий уровень состоит из вершин 1 ^ к ^ р, соответствующих интервалам (назовем эти вершины "интервалами"). Таким образом, определено множество вершин Ух = («, и, го1, г«2,..., гоп, qhj, /г, • • •, 1Р), где узел т^ соответствует работе узел q^lj — интервалу (у/г-ьу/г] и процессору ]-то типа, а узел 4 — интервалу (у/г-ъу/г], г € Ж, 1 < к < р, 1 < ^ <

Источник соединен дугами со всеми вершинами "заданиями". Каждая вершина "задание" соединяется со всеми вершинами "процессорами-интервалами", отвечающими за те интервалы, на которых это задание выполнимо. Каждая вершина "процессор-интервал" соединена дугой с соответствующей вершиной "интервал". Все вершины "интервалы" соединены дугами со стоком и. Таким образом, множество А\ состоит из следующих дуг: (в, го*), (го*, цщ) в случае, если IС (Ь^, /¿] (отметим, что интервал 4 либо не пересекается с интервалом /¿], либо целиком лежит в нем), {Чкз*. 1ъ) и г е М, 1 < Ь, < р, 1 < з < 1 Пусть Ал = - — длина интервала 4.

В табл. 1 приведены пропускные способности и дуг сети (полагаем, что = 0).

Табл и ца 1 Пропускные способности дуг сети

Дуга и

(S,Wi) di

(m,qhj) (sj - sj+1)Ah

{QhjJh) -j Aft T,(si ~si+1) ¡=i

(/ft,«) t Aft X) sjmj 3 = i

Лемма 1. Для существования допустимого расписания с объемами работ i, равными Qi, необходимо и достаточно существования в сети G\ потока д, для которого

g(s,Wi) = Qi, i€N. (4)

Доказательство леммы содержится в работе [2].

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

к

g в сети G\ и распределения ресурсов rikl г € N, 1 ^ k ^ К, для которых g(s,Wi) <1, - V ац~гц~

к=1

и выполнены ограничения (1). Запишем эти условия в виде следующей задачи линейного программирования. Требуется определить величины g(s,Wi), g(wi,qhj), g(qflj,Ifl), д(1^,и) и rikl такие, что

р t t

g(s,Wi) = ^2g(wi,qhj) = g(qhjJh), ^g{qhjJh) = g(Ih,u),

h=lj=l i£N j=1

К j

g(s,Wi) <lj - ^2aikrik, g(wi,qhj) < (sj - sj+1)Ah, g(qhj,h) < Ah si - sl+1),

k=1 1=1 t

g(Ih, u) < Ah sjmji rik < rik, rik < Rk,

j=i ieN

g(s,Wi)^t 0, g(wuqhj) ^ 0, g(qhj,h)^0, g(h,u) Si 0, rik 0, i G JV, 1 О < p, 1 < i < i, 1 < A; < JiT.

Допустимое расписание существует тогда и только тогда, когда в этой задаче линейного программирования существует решение. По найденному потоку д допустимое расписание строится с помощью алгоритма [2]. В приведенной выше задаче линейного программирования 0(n(pt + К)) переменных и 0(npt + К) ограничений. Вычислительная сложность решения этой задачи и задачи

поиска допустимого расписания составляет 0{{п(рЬ + К))4'5 к^2{п(рЬ + К)Т2)), где Т2 — макси-

г

мальное из чисел А^ ^ 8зтз-, 1 ^ ^ ^ р, Гц., г € 1 ^ к ^ К. 3 = 1

4.2. Алгоритм 2. Основываясь на результатах работ [2, 6, 7], построим потоковую сеть С2 = (У2,А2), которая получается из сети добавлением к ней узлов А и дуг («, А); (А;«); % € Ж (рис. 2).

Рис. 2. Фрагмент сети вг

В сети С2 определим К-продуктовый поток. Пусть дк(х,у) — величина потока к-го продук-

к

та по дуге (ж, у) € А2, 1 ^ к ^ К, д(х,у) = ^ 9к{х-,У) — суммарная величина потока по дуге

к= 1

(ж, у) € А2. Величина д(в, го*) соответствует суммарному объему процессорного времени, выделяемому работе ц д(1}г,и) — объему процессорного времени, выделяемому работам всеми процессорами в интервале — объему процессорного времени, выделяемому работе г процессором _7*-го типа в интервале д{цнз-,^п) — объему процессорного времени, выделяемому всем работам процессором ^'-го типа в интервале величины (¡^(з, А) и (¡^(А^) соответствуют разбиению величины ^ на К неотрицательных слагаемых, для которых 5(5, А) = д(А;£) =

дк(в, А) = 9к(А, ¿), г € ЛГ, 1 ^ к ^ К.

Каждая дуга сети С2 имеет три параметра: нижнюю границу потока (Ь), верхнюю границу потока (II) и стоимость единицы потока к-го продукта (ск). Значения этих параметров указаны в табл. 2. Пусть Ск(д) = X) ск(х->У)9к(х->У) — стоимость потока к-го продукта в сети 02.

(х,у)£А2

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Таблица 2

Значения параметров дуг сети С'2

Дуга Нижняя граница потока (Ь) Верхняя граница потока (U) Стоимость единицы потока к-го продукта (с^)

(s, Wi) К ¿г - X) (ЧкГгк > 0 к=1 di -1 /счк

(m,qhj) 0 (sj - sj+1)Ah 0

(<IhjJh) 0 з Aft - si+1) i=i 0

(/ft,«) 0 t A/» X) simi i=i 0

(s,Di) ¿1 di 1 ¡а.гк

(Di,u) ¿1 di 0

Лемма 2. Для существования допустимого расписания необходимо и достаточно существования в сети С2 потока д, для которого

Ск(д) < Як, (5)

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

к

Qi — di ^ ^ (bikriki

k=i

т. е.

к

^ ^ 0-ikrik 'h ~ Qi-k= 1

Из [2] следует, что в сети G2 существует поток g, для которого g(s,Wi) = Qi, i G N. При этом величина g(wi, qn-j) равна величине процессорного времени, выделяемого работе г процессором типа

к

j в интервале Ih. Определим gk(wi,qhj), 1 < к < К, так, чтобы g(wi,qhj) = 9k(wi,Qhj), i £ N,

к=i

1 ^ h ^ p, 1 ^ j ^ t. Кроме того, положим

p t t

gk(s,Wi) = ^2^2gk(wi,qhj), gk{qnjJh) = 9k(wi,qhj), 9k(h,u) = ^ ^ gkÎQhj, h)-

h=l j=l ieN i£N j=1

К

Тогда Qi = g(s,Wi) = ^ gk(s,Wi). Поскольку Qi ^ dj, то величину di можно представить в виде

fc=i

к

суммы d, = dik, так что fc=i

К К

Q>ikrik = ^2(dik — Wi)), dik ^ gk(s,Wi), aik = dik - gk(s, Wi), l^k^K. k=1 fc=l

Определим gk(s,Di) = gk(Di,t) = dik. Тогда rik = gk(Di,u)(l/aik) + gk(s,Wi)(-l/aik), a поскольку

S rik < Rk, то J] gk(Di,u)(l/aik) + gk(s,Wi)(-l/aik) < Rk и выполнено неравенство (5).

ieN ieN

Достаточность. Предположим, что в сети G2 существует поток g, для которого выполнено условие (5), т.е. ^ gk(Di,u)(l/a,ik) + gk(s,Wi)(—l/a,ik) ^ Rk, 1 ^ к ^ К. Следовательно, работе ieN

i G N можно выделить gk(Di,u)/aik — gk(s, Wi)/a,ik единиц ресурса к-то типа. Тогда объем работы процессоров по выполнению задания г составит

К К К

di-^2aik(9k(Di,u)/aik-gk(s,Wi)/aik) = di^^gk{Duu)+^gk{s,Wi) = di-di+g{s,Wi) = g(s,Wi).

k= 1 fc=l fc=l

Как следует из [2], в этом случае существует допустимое расписание, при котором объем работы процессоров по выполнению задания i составляет g(s,Wi). Таким образом, допустимое расписание существует. Лемма доказана.

Сформулируем теперь поставленную задачу в виде задачи линейного программирования. Из леммы 2 следует, что для существования допустимого расписания необходимо и достаточно существования потока g в сети G2 и распределения ресурсов rik, для которых выполнены ограничения (1), (5). Запишем эти условия в виде следующей задачи линейного программирования. Требуется определить величины дк(s, Wi), gk{wuqhj), gk(qhj,Ih), gk(Ih,u), gk(s,Di), gk(Duu) и rik, такие, что

p t t

дф,щ) = ^gk{wu4hj) = gk(qhj,h), gkiqnjJh) = gk(h,u),

h=lj=l ieN j=1

К к к

^2ak(s,Wi) ilj - ^2aikrik, ^2gk(wi,qhj) < (sj - sj+1)Ah,

k=1 fc=i fc=i

к j к t

^29k(wuQhj) < - sl+1), ^2gk(Ih,u) < Ah^Sjnij,

k=l i=i fc=i i=i A" A"

^2ak(s,Di) =^2gk(Di,u) = di, rik^rik, ^rik sg fc=i fc=i ¿eiv

ieN

9k(s,Wi) ^ 0, gk{wi,qh:j) ^ 0, gkiQhjJh) > 0, gk(Ih,u) ^ 0,

gk(Duu)^ 0, rifc ^ 0, i G JV, 1 < /г < p, 1 < j < i, 1 < k < K.

Допустимое расписание существует тогда и только тогда, когда в этой задаче линейного программирования существует решение. По найденному потоку д допустимое расписание строится с помощью алгоритма [2]. В приведенной выше задаче линейного программирования 0(прК1) переменных и 0{пК + КрЬ + прЬ) ограничений. Вычислительная сложность решения этой задачи и задачи поиска допустимого расписания составляет 0((прК1)4'5 к^2(пр1П)Тз), где Т3 — максимальное из чисел

г

А/г ^ агЬ 1 /а-гк, Гц., Як,

3 = 1

где г € м, 1 < А; < К, 1 < /г < р.

5. Заключение. Исследована задача составления допустимого расписания с прерываниями в многопроцессорной системе в случае, когда заданы директивные интервалы, процессоры могут иметь произвольные производительности, имеется несколько типов дополнительных ресурсов, а длительности выполнения работ линейно зависят от количества выделенного им дополнительного ресурса. Разработаны полиномиальные алгоритмы, основанные на сведении исходной задачи к потоковой и задаче линейного программирования.

СПИСОК ЛИТЕРАТУРЫ

1. Танаев В. С., Гордон B.C., Шафранский Я. М. Теория расписаний. Одностадийные системы. М.: Наука, 1984.

2. FedergruenA., GroenevelH. Preemptive scheduling of uniform machines by ordinary network flow technique // Management Science. 1986. 32. N 3. P. 341-349.

3. Gonzales Т., Sahni S. Preemptive scheduling of uniform processor systems // J. Ass. Comput. Mach. 1978. 25. N 1. P. 92-101.

4. Давыдов Э. Г. Исследование операций. М.: Высшая школа, 1990.

5. Косоруков Е. О., Фуругян М. Г. Некоторые алгоритмы распределения ресурсов в многопроцессорных системах // Вестн. Моск. ун-та. Сер. 15. Вычисл. матем. и киберн. 2009. № 4. С. 3437. (Kosorukov Е. О., Furugyan М. G. Some algorithms for resource allocation in multiprocessor systems // Moscow Univ. Comput. Math, and Cybern. 2009. 33. N 4. P. 202-205.)

6. Фуругян M. Г. Планирование вычислений в многопроцессорных АСУ реального времени с дополнительным ресурсом // Автоматика и телемеханика. 2015. № 3. С. 144-150.

7. Фуругян М. Г. Составление расписаний в многопроцессорных системах с несколькими дополнительными ресурсами // Изв. РАН. Теория и системы управления. 2017. № 2. С. 57-66.

8. Фуругян М. Г. Планирование вычислений в многопроцессорной системе с нефиксированными параметрами // Вестн. Моск. ун-та. Сер. 15. Вычисл. матем. и киберн. 2016. № 1. С. 40-45. (Furugyan М. G. Planning computations in a multiprocessor system with unfixed parameters // Moscow Univ. Comput. Math, and Cybern. 2016. 33. N 1. P. 41-46.)

9. Костенко B.A., Плакунов А. В. Алгоритм построения одноприборных расписаний, основанный на схеме муравьиных колоний // Изв. РАН. Теория и системы управления. 2013. № 6. С. 87-96.

10. Костенко В. А. Алгоритмы построения расписаний для вычислительных систем реального времени, допускающие использование имитационных моделей // Программирование. 2013. № 5. С. 53-71.

Поступила в редакцию 21.12.16

i Надоели баннеры? Вы всегда можете отключить рекламу.