Планирование вычислений в многопроцессорной системе с нефиксированными параметрами

УДК 519.86

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

ПЛАНИРОВАНИЕ ВЫЧИСЛЕНИЙ В МНОГОПРОЦЕССОРНОЙ СИСТЕМЕ С НЕФИКСИРОВАННЫМИ ПАРАМЕТРАМИ

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

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

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

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

Подобная задача составления допустимого расписания с прерываниями для случая, когда процессоры имеют одинаковую производительность, дополнительный ресурс отсутствует, рассматривалась в [1] и была сведена к задаче о максимальном потоке в сети специального вида. Задача с произвольными процессорами и произвольными директивными интервалами рассматривалась в [2], а задача с произвольными процессорами и одинаковыми директивными интервалами — в [3]. В обеих этих работах дополнительный ресурс не рассматривался. Задача минимизации времени

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

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

2. Постановка задачи. Рассматривается вычислительная система, состоящая из т процессоров. Производительность ^'-го процессора равна Sj. Предполагается, что «1 ^ «2 ^ • • • ^ «то-Имеется множество заданий (работ) N = {1,2, ...,п). В каждый момент времени каждый процессор может выполнять не более одного задания, а каждое задание выполняется не более чем одним процессором. При выполнении заданий допускаются прерывания и переключения с одного процессора на другой. Предполагается, что прерывания и переключения не сопряжены с временными затратами. Для задания г € N установлен директивный интервал (¿»¿, /¿] (т. е. работа г может выполняться только в этом интервале). Помимо процессоров в системе имеется дополнительный ресурс невозобновляемого типа. Суммарное количество этого ресурса составляет К. Если заданию г выделено единиц дополнительного ресурса, то объем работы процессоров по выполнению задания г составляет (¡^ = с^ — щг^ где

Гг€[0,гч], г = 1,2,. ..,71, ^Гг^Д,

гелт

аг, (¿г, Гг — заданные величины, щ > 0, с^ > 0, 0 ^ г^ < й^/щ. Таким образом, (¿^ € [й^ — щг^, (¿¿], причем ^ — щгг > 0. За время г процессор ^'-го типа выполняет объем работы в^т. Если задание имеющее объем выполняется процессором ^'-го типа в течение интервала времени т^, ] = 1, 2,..., т,

то

то (Зг = ^ я^Т]. Требуется найти такое распределение ресурсов (г, г§,..., г°), при котором су-з=1

ществует допустимое расписание (т. е. такое расписание, при котором каждая работа полностью выполняется в своем директивном интервале), или установить, что такого распределения ресурсов не существует. При этом распределение ресурсов (г,г, • • •,г) должно удовлетворять ограничениям (1). В случае, когда указанного распределения ресурсов не существует, требуется определить директивные интервалы /¡}, при которых указанное распределение ресурсов существует и величина тах(/г' — /¿) принимает минимальное значение.

Рассмотрим некоторые примеры подобных задач [6, 7]. В первом примере все процессоры идентичные. В этом случае обычно каждое задание I характеризуется не объемом, а длительностью ¿¿, которая зависит от величины энергопотребления для этого задания: ^ = е^ — щг^. Общий объем энергоресурсов для всех заданий ограничен величиной Д. Во втором примере каждому заданию г выделяются дополнительные средства на приобретение специализированных процессоров (которые могут быть использованы только для выполнения конкретного задания), что снижает объем работы основных процессоров по выполнению данного задания. В третьем примере, аналогичном второму, помимо основных станков (процессоров) имеется денежный фонд в размере Д для приобретения дополнительных станков или найма рабочей силы для выполнения работы i, что снижает объем работы, выполняемой основными станками.

3. Задача с одинаковыми директивными интервалами. В этом разделе предполагается, что директивные интервалы всех работ совпадают. Без ограничения общности можно считать, что

Ьг = 0, /г = .Р, '1 € N. Как следует из [3], необходимым и достаточным условием существования

то

допустимого расписания в этом случае является выполнение неравенства ^ (¿г ^ Р ^ Sj, или

гедг j=l

то то

^((¿г - ЩГг) < ^2аггг ^ -

ге^ ] = 1 г£АГ :'} = !

то

Пусть di^ F Sj = В. Тогда задача заключается в поиске такого распределения ресурсов i£N j=1

(1*1, г2,..., rn), которое удовлетворяет системе ограничений

^а^^В, ^VjSgi?, Vi € [0, fj], г = 1,2, ...,п.

i£N i£N

Таким образом, допустимое расписание существует тогда и только тогда, когда задача линейного программирования (2) имеет решение. Если задача (2) имеет решение (rj, г2,..., ), то, определив Q9 = di — щг, i €. N, и применив алгоритм, описанный в [3], найдем допустимое расписание. Вычислительная сложность алгоритма Кармаркара решения задачи линейного программирования для случая, когда число ограничений не превосходит числа переменных п, составляет 0(n4'5 log2 (пТ)), где Т — максимальное значение числового параметра. В задаче (2) п переменных и п + 2 ограничения. Вводя две фиктивные переменные, получаем, что вычислительная сложность решения задачи (2) составляет 0(n4'5 log2(nTi)), где Т\ — максимальное из чисел a,j,fj, i G N, В и R. Сложность алгоритма, описанного в [3], — 0(п).

Определим минимальное количество Rm¡п дополнительного ресурса, при котором допустимое расписание существует [6]. Рассмотрим задачу линейного программирования

R min , У щгг ^ В, У г< < Д,

ri,...,rn,R —' —'

i£N i£N

Vi € [0, fj], г = 1, 2,..., n, R ^ 0.

Если задача (3) имеет решение, то каждому ее решению (r^rij,..., Rm-m соответствует допустимое расписание, а Rm¡п — минимально допустимое количество дополнительного ресурса. Вычислительная сложность решения задачи (3) составляет 0(п4,5 log2(пТ2)), где Т2 — максимальное из чисел öj, fj, / G Л;. и Н.

4. Минимизация общего директивного срока. Теперь будем предполагать, что количество ресурса R в системе фиксировано, а директивный срок может изменяться, за счет чего будет достигаться существование допустимого расписания. Как и в п. 3, предполагается, что директивный интервал каждой работы совпадает с интервалом (О, F], а величина F минимизируется. В этом случае решается следующая задача линейного программирования [7]:

то

F ->• min + > Д, rj € [0,fj], i € n.

Г1'"''Гп' i£N j=i ¿eiv ¿eiv

Задача (4) имеет решение. Каждому ее решению (г^г, • • •, Fmin соответствует допустимое расписание, а Fmin — минимально допустимый директивный срок при фиксированной величине ресурса R в системе. Применив алгоритм, описанный в [3], получим окончательное решение в виде допустимого расписания. Вычислительная сложность решения задачи (4) составляет

то

0(n4'5 log2(nT3)), где Т3 — максимальное из чисел щ, fi, i G N, ^ dj, Sj и R.

i£N j=1

5. Необходимое и достаточное условие существования допустимого расписания.

В этом разделе будем предполагать, что директивные интервалы имеют вид (0, /¿], г С N. Без ограничения общности можно считать, что < /¿+1 при всех ! С IV, т.е. работы упорядочены по возрастанию правых границ их директивных интервалов. (Если для двух или более работ их директивные интервалы совпадают, то эти работы можно заменить одной работой с тем же директивным интервалом и длительностью, равной сумме длительностей этих работ.) Приведем необходимые и достаточные условия существования допустимого расписания, полученные в [10], сначала для произвольных директивных интервалов, а затем преобразуем их с учетом ограничений настоящего раздела. Пусть у0 < у\ < ... < ур, р < 2п, — все различные по величине значения Ь^ г € N. Определим интервалы 1к = (ук_1,ук], к = 1, 2,... Заметим, что 1г = (0, /1], 12 = (/1, /2], ...,/„ = (/„-!,/„]• Отметим, ЧТО ДЛЯ любых двух интервалов И (Ьг,/г] либо /г С (¿»¿,/г], либо 11П(Ъг,/г] = 0.

Как следует из [10], допустимое расписание _в рассматриваемой системе существует тогда и только тогда, когда для любого подмножества N С N выполнено неравенство

р

<->*;

гелт 1=1

к

где к(1,Н) = тт(т, т'), т' — число работ г € -/V, доступных в интервале I/, вь = Si,

г=1

&1=У1~ У1-1-

Пусть ! е IV, — множество всех интервалов в которых работа I доступна. Для всех ¿2; 1 ^ Ь ^ Ь ^ Р-, определим следующие множества:

^кк = {^п • • • ) ^кк = {-^1; • • • ; 1к-1,1к + 1,   • , 1р},

Чк = {г € N : £>(г) С Л^ = {г е Ж : £>(г) С

'Чк> если и т = в противном случае,

Ч^ если и =

0 в противном случае.

Чк = < ^кк

Чк = < 'емкк

Из [10] следует, что допустимое расписание в рассматриваемой системе существует в том и только в том случае, когда неравенство (5) справедливо для всех 1х, 12, 1 ^ ¡1 ^ ¡2 ^ р, и всех подмножеств Й1 С NI ^ , Й2 С Щ^ , для которых

и = и =

гелп ieN2

Поскольку директивные интервалы имеют вид (0, /¿], г € -/V и /г < /¿+х при всех % € Ж, то с учетом последнего замечания достаточно рассматривать только подмножества N следующего вида: {1}, {1, 2), {1, 2, 3),..., {1, 2,..., п}. Для подмножества {1} условие (5) имеет вид <51 ^ Ах^х; для подмножества {1, 2} + С?2 ^ Д^ + Дг^ь В общем случае для подмножества {1, 2,..., к} имеем

к к

^ ^

г=1 г=1

Здесь Дх = /1; Д.,- = fj — 3 ^ 2. Увеличим правые границы директивных интервалов всех работ на е. Получим, что Д", Д1 + г и Д} Д/. ./' > 2. Таким образом, учитывая (6), получаем следующую задачу линейного программирования:

к к

^ ^ гг ^ -й, ^ ^ Qi ^ ^ ^ <5щт(т,/г—г+1); & — 1, • • • , И.

е ^ тт , г\,...,гп,е

г£АГ г=1 г=1

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

/г к

} ^ Qi ^ (Ах + £')<5щт(т,/г) + } ^ Дг<5тт(т,/г-г+1); ^ = 1, • • • ,

г=1 г=2

ИЛИ

_ ОгГг) ^ (^1 + ^тЦт.к) + ^ Дг£тт(т,*;-г+1)) & — 1, . . . , П, г=1 г=2

получаем следующую задачу линейного программирования:

е тт ,

г\,...,гп,е к к

У ^ гг ^ У ^ аггг + £Зтт(гп,к) ^ ^ ^(^г — Аг'5'тт(то,А;-г+1))! к = 1, . . . , П.

геИ г= 1 г= 1

Решение задачи (7) позволит оптимальным образом скорректировать директивные интервалы, а именно: все директивные сроки fi будут увеличены на минимальную величину е так, что допустимое расписание будет существовать. Для построения допустимого расписания следует применить алгоритм, описанный в [6]. Вычислительная сложность решения задачи (7) составляет

к

0(п4'5 к^2(пТ4)), где Т4 — максимальное из чисел щ, г € Ж, ¿>тт(т,*;), № ~

1=1

к = 1,..., п, и Д.

6. Идентичные процессоры. В настоящем разделе поставленная задача рассматривается для частного случая, когда процессоры имеют одну и ту же производительность. В этом случае для каждой работы i £ N задается не объем, а ее длительность, которая вычисляется как ¿г = (¿г — а^Гг, где величины г г удовлетворяют условиям (1). Если директивные интервалы всех работ совпадают с интервалом (О, .Р], а величины йи^ фиксированы (см. п. 3), то из [1] следует, что необходимым и достаточным условием существования допустимого расписания в рассматриваемой задаче является выполнение неравенства ^ и ^ тР или ^ (с^ — щг^) ^ т^,

геи геи

а%г% ^ ¿г - тР-геи геи

Пусть V (I, - тР = В. Тогда задача заключается в поиске такого распределения ресурса геи

(г1,...,гп), которое удовлетворяет системе ограничений (2). Задача определения минимального количества Кт-т дополнительного ресурса, при котором допустимое расписание существует, сводится к задаче линейного программирования (3).

В случае, когда количество ресурса К в системе фиксировано, а директивный срок Р может изменяться, задача минимизации величины Р (см. п. 4) сводится к задаче линейного программирования (3), в котором первое неравенство следует заменить неравенством ^ щг^ + тР ^ ^

геи геи

Перейдем к рассмотрению случая, когда все директивные интервалы имеют вид (0, /¿], г € N (см. п. 5). Для произвольного подмножества N С N определим множество номеров I интервалов

1

и величину п{1) = |{г € Й, ¡1 С (¿»¿,/г]}|. Как следует из [1], допустимое расписание существует тогда и только тогда, когда для любого подмножества N С N выполняется неравенство

^ Д,тт

геи 1е1

При этом достаточно рассмотреть только такие подмножества Ж, для которых 1(Й) = = {1\,,1\ + 1,..., /2}" при некоторых 112, 1 ^ 1\ ^ ¡2 ^ Р- Поскольку директивные интервалы имеют вид (0,/¿], г £ I, и /г < при всех г е I, достаточно рассматривать только подмножества N следующего вида: {1}, {1, 2}, {1, 2, 3},..., {1, 2,..., п}. Для подмножества {1} условие (8) имеет вид ¿1 ^ Ах; для подмножества {1, 2} — ^+¿2 ^ 2А1+А2. В общем случае для подмножества {1,2,..., к} имеем

к к

< Агтт

г= 1 г=1

Здесь, как и в случае произвольных процессоров, Д1 = /1; А^ = fj — /^-1, 3 ^ 2.

Увеличим правые границы директивных интервалов всех работ на е. Получим, что AJ = Ai+e и А* = Aj, j ^ 2. Таким образом, учитывая (9), получаем следующую задачу линейного программирования:

к к

е ^ min , Vi ^ R, ti ^ А* min(m, к — % + 1), к = 1,...,п.

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

к к

ti ^ (Aj + е) min(m, к) + ^^ Aj min(m, А; — г + 1), к = 1,..., п,

г=1 г=2

или

к к

— ßjrj) ^ (Ai + е) min(m, к) + ^^ Aj min(m, А; — г + 1), к = 1,...

ювания:

>п

г=1 г=2

получаем следующую задачу линейного программирования:

е —> тт ,

г1,...,гп,е

¿елг

к к

«¿г^ + е тт(т, А;) ^ ^^(с^ — тт(т, А; — г + 1)), к = 1,..., п.

г=1 г=1

Решение этой задачи позволит оптимальным образом скорректировать директивные интервалы, а именно: все директивные сроки fi будут увеличены на минимальную величину е так, что допустимое расписание будет существовать. Для построения допустимого расписания следует применить алгоритм, описанный в [5]. Вычислительная сложность решения задачи (10) составляет

к

0(п4'5 (пТ5)), где Т5 — максимальное из чисел щ, I € -/V, тт(т, Аг), ^ (dj^Дj•min(m, Аг —г + 1)),

г=1

к = 1,..., п, и Д.

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

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. Фуругян М. Г. Оптимальная коррекция директивных интервалов в задаче построения многопроцессорного расписания с дополнительным ресурсом // Изв. РАН. Теория и системы управления. 2015. № 2. С. 84-93.

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

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

10. Mart el С. Preemptive scheduling with release times, deadlines, and due times // J. the ACM. 1982. 29. N 3. P. 812-829.

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

COMPUTATION PLANNING IN MULTIPROCESSOR SYSTEM WITH NOT FIXED PARAMETERS

Furugyan M. G.

A problem of admissible preemptive scheduling is considered when execution intervals are specified, processors have arbitrary performance, and the execution time of tasks linearly depends on the amount of the additional resource allocated to their execution. If there is no admissible schedule for a given amount of the additional resource, we consider the problem of optimal correction of execution intervals. The solution is based on analysis of necessary and sufficient conditions of existence of admissible schedule.

Keywords: multiprocessor system, preemptive scheduling, resource distribution, execution intervals.