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
Таблица 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