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

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 < к < К,

гелг

К

ацс, ггк — заданные величины, ац~ ^ 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 агкГгк ^ -В, г Не ^ Як,

г£И к=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

Як,г и, ,, к=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

Доказательство леммы содержится в работе [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

Таблица 2

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

Дуга Нижняя граница потока

(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 потока д, для которого

Ск

Доказательство. Необходимость. Пусть в рассматриваемой задаче существует допустимое расписание, а объем работы процессоров по выполнению задания 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.

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

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

8. Фуругян М. Г. Планирование вычислений в многопроцессорной системе с нефиксированными параметрами // Вестн. Моск. ун-та. Сер. 15. Вычисл. матем. и киберн. 2016. № 1. С. 40-45.

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

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

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