УДК 004.4
ЗАДАЧА ОПТИМИЗАЦИИ ЧИСЛА ПРОЦЕССОРОВ ПРИ РАСПРЕДЕЛЁННОЙ ОБРАБОТКЕ
© 2011 П. А. Павлов Полесский государственный университет
Решена задача определения временных характеристик распределённых процессов, конкурирующих за программный ресурс, и предложен метод нахождения оптимального числа процессоров, обеспечивающих директивное время выполнения заданных объемов вычислений.
Распределённый процесс, программный ресурс, асинхронный режим, однородная распределённая система, неограниченный параллелизм, ограниченный параллелизм.
Введение. Постоянное существование задач сверхвысокой сложности: задачи проектирования сложных систем; задачи оптимизационного плана развития экономики страны или отдельного региона, сооружений, технологических процессов; задачи эффективного использования спутников Земли для развития народного хозяйства и др., характеризуются большой размерностью, десятками сотен и миллионов независимых переменных и соответствующих ограничений. Указанные задачи можно эффективно решать, используя идеи распараллеливания сложных вычислительных процессов и обработки больших объёмов данных и знаний с помощью параллельных многопроцессорных систем (МС) и вычислительных комплексов (ВК), “ объединяя в единое целое сведения из таких областей, как архитектура компьютеров и вычислительных систем, системное программирование и языки программирования, различные методы обработки информации” [1]. Принципы параллельной организации сложных процессов являются не только одним из универсальных способов достижения высокой производительности и надёжности вычислительных средств, они присущи системам управления, операционным системам, системам автоматизированного проектирования, промышленным процессам, конвейерным линиям и т. д. В этой связи возникает необходимость новых принципов организации вычислений и распределения ресурсов, создания эффективного аппа-
ратного и программного обеспечения, оптимального планирования и распределения вычислительных процессов [2]. При этом особую актуальность приобретают задачи эффективного управления множеством процессов, имеющих доступ к общим ресурсам, в том числе к программным. Математическая постановка такого рода задач была предложена и исследована ранее в работах [2-5].
В настоящей статье решена задача определения временных характеристик процессов вычислений, конкурирующих за программный ресурс при параллельной распределённой обработке в случае ограниченного параллелизма [2], и предложен метод нахождения минимального числа процессоров, обеспечивающих директивное время выполнения заданных объемов вычислений. Ввиду дискретного и комбинаторного характера математических задач параллельного программирования определённый прогресс на пути их решения был достигнут за счёт применения математического аппарата и методов дискретных систем и дискретной оптимизации, теории расписаний и сетевых графов, теории алгоритмов и множеств, алгебры матриц и др.
1. Основные понятия и определения. Как и в [2-4], процесс будем рассматривать
как последовательность блоков Q1,Q2,---,0,, для выполнения которых используется множество процессоров. При этом процесс будем считать распределённым, если все бло-
ки или часть из них выполняются на разных процессорах. Процессы, которые для ускорения выполнения обрабатываются параллельно, взаимодействуя путём обмена информацией, будем называть кооперативными или взаимодействующими процессами. Последовательность программных блоков, которую процессорам необходимо выполнять многократно, будем называть программным ресурсом PR, а множество соответствующих процессов - конкурирующими.
Математическая модель системы распределённой обработки конкурирующих процессов включает в себя [4]: s, s > 2 - число блоков линейно-структурированного программного ресурса PR = (й,0>2,...,&);
п, п > 2 -
число распределённых относи-
тельно PR конкурирующих процессов; p, p > 2 - число процессоров многопроцессорной системы; матрицу T = ] времен вы-
полнения у-х блоков /-ми конкурирующими
процессами / = 1, п, у = 1,,; е - время, характеризующее дополнительные системные расходы по организации структурирования и параллельного использования блоков PR.
Определение 1- Распределённая система п взаимодействующих конкурирующих процессов называется неоднородной, если времена выполнения блоков РЯ зависят от объёмов обрабатываемых данных и/или их структуры, т.е. разные для разных процессов.
Так же, как и в [3, 4], будем считать, что взаимодействие процессов, процессоров и блоков линейно-структурированного программного ресурса подчинено следующим условиям: 1) ни один из блоков РЯ не может обрабатываться одновременно более чем одним процессором; 2) ни один из процессоров не может обрабатывать одновременно более одного блока; 3) обработка каждого блока осуществляется без прерываний; 4) распределение блоков программного ресурса по процессорам МС для каждого из процессов осуществляется циклически по
правилу: блок с номером у = кр + /, у = 1,,, / = 1, р, к > 0 распределяется на процессор
с номером /; 5) отсутствуют простои процессоров при условии готовности блоков, а также невыполнение блоков при наличии процессоров; 6) для каждого из п процессов момент завершения выполнения у-го блока на /-м процессоре совпадает с моментом начала выполнения следующего (у + 1)-го
блока на (і + 1)-м процессоре, і = 1, р -1.
^ = 1, ^ -1; 7) для каждого из блоков структурированного программного ресурса момент завершения его выполнения 1-м процессом совпадает с моментом начала его выполнения (I +1) -м процессом на том же процес-
соре, I = 1, п -1.
Асинхронный режим взаимодействия процессоров, процессов и блоков предполагает отсутствие простоев процессоров МС при условии готовности блоков, а также невыполнение блоков при наличии процессоров и определяется условиями 1-5.
Условия 1-4, 6 определяют первый синхронный режим, обеспечивающий непрерывное выполнение блоков PR внутри каждого из процессов.
Второй синхронный режим, определяемый условиями 1-4, 7, обеспечивает непрерывное выполнение каждого блока всеми процессами.
2. Неоднородные распределённые конкурирующие процессы в асинхронном режиме. В [5] для вычисления минимального общего времени та (р, п, ,,е) выполнения
п > 2 неоднородных распределенных конкурирующих процессов, использующих структурированный на , > 2 блоков программный ресурс в многопроцессорной системе с р > 2 процессорами с учётом параметра е > 0 в случае неограниченного параллелизма (2 £ , £ р ), был использован функционал задачи Беллмана-Джонсона, который имеет вид:
та (р, п, 5,е)=
тах
!<«! <Ы2 <-..<Ы3-1 <п
і=1
где ^ + е , / =1, п, у =1, *,
а иъ и2, ..., и5-1 - целые положительные числа.
Было также предложено графоаналитическое решение задачи определения
Т“с (р, п, 5,е). По заданным п, 5 и матрице времён выполнения блоков программного ресурса с учётом параметра е Те = [г* ],
^ = t¡j + е , / = 1,п, у = 1,, построен сетевой
вершинно-взвешенный граф С1ас, который
содержит т вершин, расположенных в узлах прямоугольной п х 5 -решетки (рис. 1).
Каждой вершине графа соответствует значение ^е, / = 1,п, у = 1,, , причём ^ - начальная вершина, геш - конечная. Дуги в графе G1ac отражают линейный порядок выполнения блоков , у = 1,, программного ресурса каждым из процессов, а также линейный порядок использования одних и тех же блоков разными процессами.
Теорема 1- Минимальное общее время выполнения п (п > 2) неоднородных распре-
делённых конкурирующих процессов, использующих структурированный на 5 (5 > 2) блоков программный ресурс с временами выполнения блоков, задаваемыми матрицей
Те = [гЕц], / = 1,п, у = 1,5, в многопроцессорной системе с р (р > 2), процессорами в асинхронном режиме в случае 2 £ 5 £ р определяется длиной критического пути в сетевом вершинно-взвешенном графе G1ac из
начальной вершины гЦ в конечную -
Рассмотрим случай ограниченного параллелизма, т. е. когда 5 > р, 5 = кр + г , к > 1, 1 £ г < р. Для вычисления общего времени выполнения множества распределённых неоднородных конкурирующих процессов в асинхронном режиме всё множество блоков
разобьём на к +1 группу по р блоков в каждой, за исключением к + 1-й группы, которая будет содержать г блоков. На рис. 2 представлен пример диаграммы Ганта, которая отражает выполнение п = 4 неоднородных распределённых конкурирующих процессов, использующих структурированный на 5 = 8 блоков PR в МС с р = 3 процессорами. Времена выполнения блоков линейно-структу-
Рис. 1. Сетевой вершинно-взвешенный граф G1a‘
рированного программного ресурса проставлены над соответствующими блоками. Очевидно, что если выполнение очередной группы из р блоков начинать только после полного завершения выполнения предыдущей группы, то общее суммарное время выполнения всех п процессов в этом случае будет определяться как сумма длин критических путей в каждой из подряд идущих несовмещенных диаграмм Ганта, задаваемых прямой
суммой матриц Т1е, I = 1,к +1. Однако это время можно существенно сократить, если воспользоваться приёмом совмещения последовательных диаграмм Ганта по оси времени справа налево. Причём совмещение осуществляется поблочно, начиная со второй диаграммы, на максимально возможную величину таким образом, чтобы не нарушались технологические условия, определяющие асинхронный режим взаимодействия процес-
сов, процессоров и блоков. В результате совмещения получим результирующую совмещённую диаграмму Ганта (рис. 3).
Полученная структура результирующей совмещённой диаграммы Г анта будет полностью определяться матрицей Т* (1) и состоять из подматриц Т1е ,Т2е,---, Тке+1 размерностью
п х р каждая. При этом подматрицы Тге,
I = 1,к +1 в результирующей матрице Т* располагаются таким образом, чтобы не нарушался характер взаимодействия как блоков PR, выполняемых одним и тем же процессом, так и блоков, выполняемых на одном и том же процессоре. Первая строка матрицы
Т* будет состоять из подматриц ТгЕ,
I = 1,к +1, что отражает характер взаимодействия блоков программного ресурса внутри каждого из п процессов:
Рис- 3- Совмещенная диаграмма Ганта 233
Т =
" ТЄ Те 2 Т • 1Ъ • ТЄ Те ~ к+1
ТЄ Т 1Ъ ТЄ • • т;, 0
те Т 4 ТЄ • 0 0
ТЄ Т к+1 0 0 0
ТЄ+1 0 0 • 0 0
(1)
где Т И Ткє+1 матрицы вида
Т =
Ґ Ґ
1,(/-1) р+1 1,(/-1 )р+2
Ґ Ґе
2 (/-1 )р+1 2,(/-1 )р+2
Ґ ґ
п,(/-1 )р+1 п,(/-1 ,)р+2
1,/р
2 ,/р
п,/р
/ = 1,к,
Те =
1к+1
\,кр+\
2,кр+\
п,кр+\
1,кр+2
2 ,}ф+2
п,кр+2
1,кр+г
2 ,кр+г
п,кр+г
0
0
•• 0 0
взвешенный граф G2aс. Вершины этого графа расположены в узлах прямоугольной (к +1 )п х (к +1 )р -решётки. Как и в случае
5 < р , общее время та(р,п,8 = кр + г, е ) выполнения п неоднородных распределённых конкурирующих процессов определяется длиной критического пути из начальной вер-
шины ґЦ в конечную
( к+1 )п,( к+1) р
. Имеет мес-
В матрице (1) очередная строка получается соответствующим смещением подмат-
риц Т , / = 2,к +1 справа налево на максимальную величину, сохраняющую линейный порядок выполнения блоков программного ресурса на одном и том же процессоре.
С учётом того, что все подматрицы Т,
I = 2,к +1 имеют одну и ту же размерность п х р, величина смещения на каждом шаге будет равна р. Элементы смещённой на каждом шаге матрицы заполняются нулями. Выполнив таким образом к шагов смещений, получим структуру результирующей матрицы Т*. Отметим, что результирующая матрица Т* будет иметь размерность (к +1 )п х (к +1 )р . Матрица Т* будет блочной, симметричной, верхне-диагональной относительно второй диагонали типа Г анке-левой порядка к+1 [2]. По весам, задаваемым *
матрицей Т , строится сетевой вершинно-
то теорема.
Теорема 2. Минимальное общее время
Т™(р,п,5,е ) выполнения п (п > 2) неоднородных распределённых конкурирующих процессов, использующих линейно структурированный на 5 (5 > 2) блоков программный ресурс с временами выполнения блоков,
задаваемыми матрицей Те = [^ ], г = 1, п,
] = 1,5 , в многопроцессорной системе с р (р > 2) процессорами и дополнительными системными расходами е > 0 в асинхронном режиме в случае 5 = кр + г, к > 1, 1 < г < р определяется длиной критического пути из
начальной вершины ^ в конечную вершину
1(к+1 )п(к+1 )р сетевого вершинно-взвешенного
графа G2ас.
3. Задача оптимизации числа процессоров при распределённой обработке. Несомненно, время выполнения всех распределённых конкурирующих процессов
Та(р,п,8,е ) будет существенно зависеть от
количества имеющихся процессоров. Задача состоит в том, чтобы при заданных п, 5, е,
[г^] , г = 1, п, ] = 1,5 и заданного директивного времени выполнения всех распределённых конкурирующих процессов ё найти минимальное число процессоров р* , обеспечивающих директивное время выполнения. Решение данной задачи рассмотрим для общего случая асинхронного режима, т. е. когда процессы являются неоднородными.
Введём в рассмотрение двумерный массив Мч переменной длины, составленный
Б
специальным образом из элементов матрицы [ге], где г* = г у + е , г = 1,п, у = 1,5 , а
д, д е N - порядковый номер результирующей матрицы времен выполнения блоков (двумерного массива переменной длины
Мд ).
Определение 2. Число процессоров МС будем называть достаточным и обозначать
р5 при заданных п, 5, если р5 = 5 .
Обозначим через ТЦ( р5 ,п,5,е ) минимальное общее время выполнения множества конкурирующих процессов при
достаточном числе процессоров р5 , а
Та(р,п,я,е ) - минимальное общее время
при исходном числе процессоров р. Имеет место теорема.
Теорема 3. При заданных п, 5, е, [гу],
г = 1,п, у = 1,5 в случае достаточного
( р5 = 5) и ограниченного (р < 5) числа процессоров МС имеет место соотношение Тнас(р5,п,5,е) < Та(р,п,5,е).
Доказательство следует из того, что при достаточном числе процессоров ( р5 = 5 ) минимальное общее время ТО"(р5,п,5,е ) вычисляется как длина критического пути в сетевом вершинно-взвешенном графе 01ас. А
при 5 > р, 5 = кр + г, к > 1, 1 < г < р минимальное общее время Т(р < 5, п, 5,е ) , согласно теореме 2, определяется длиной критического пути в сетевом вершинно-взвешенном графе 02ас, задаваемом матрицей
Т* специального вида (1) размерности (к +1 )п х (к +1 )р .
Ввиду того, что исходная матрица
Те = [¡е], г = 1,п, у = 1,5 входит в качестве подматрицы в первую строку матрицы (1), сетевой вершинно-взвешенный граф G1ac,
определяемый матрицей [¡е] , г = 1,п ,
у = 1,5 , будет подграфом сетевого вершинно-взвешенного графа 02ас, определяемого матрицей (1). Так как длина критического пути в сетевом подграфе 01ас данного графа не может превышать длину критического пути в самом сетевом графе 02ас , то справедливо неравенство
Тнас(р5,п,5,е) < Тнас(р,п,5,е) ,
что и требовалось доказать.
Следует также заметить, что в случае 5 < р , согласно принятой модели, достаточно использовать только 5 процессоров, а остальные р - 5 не будут задействованы.
Теорема 3 является отправной точкой для построения метода нахождения оптимального числа процессоров р* , обеспечивающих директивное время ё выполнения неоднородных конкурирующих процессов при распределённой обработке в условиях асинхронного режима их взаимодействия.
Входные данные:
- р, р > 2 - заданное (исходное) число процессоров;
- п, п > 2 - число конкурирующих неоднородных распределённых процессов;
- 5, 5 > 2 - число блоков линейноструктурированного программного ресурса;
- М - двумерный массив, содержащий элементы исходной матрицы с учётом дополнительных системных расходов е [¡У],
г = 1,п, у = 1,5 ;
- ё - заданное (директивное) время выполнения конкурирующих процессов.
Выходные данные:
- р* - минимальное (оптимальное) число процессоров, обеспечивающих выполнение конкурирующих процессов за директивное время ё;
- Мд - двумерный массив, содержащий
результирующую матрицу времён выполнения блоков программного ресурса вида (1);
- д - порядковый номер результирующей матрицы времён выполнения блоков программного ресурса РЯ.
Метод.
Если ё < ТО(р5 ,п,5,е ) , то полагаем
*
р* = 0 , т. е. директивное время выполнения конкурирующих процессов ё не может быть реализовано в заданных условиях ни для какого числа процессоров.
Пусть ё > то(р5 ,п,5,е ) и число процессоров МС является ограниченным, т.е. 5 > р . Тогда между ё, ТО(р",п,5,е) ,
ТО(р < 5,п,5,е ) возможны следующие случаи:
- если ТО(р5,п,5,е) < ё = ТО(р,п,5,е )
или ё > ТО(р,п,5,е ), то нахождение р* осуществляется методом деления пополам отрезка [ 2,р];
- если ТО (р* ,п,5,е ) < ё < ТО (р,п,5,е ) ,
*
то нахождение р осуществляется методом деления пополам отрезка [р,р6' ].
Рис. 4. Зависимости ТО(р,п,5,е ) от числа процессоров
Пусть 5 < р . Тогда нахождение р осуществляется методом деления отрезка [2,р5 ] пополам.
Нетрудно подсчитать, что сложность алгоритма нахождения оптимального числа
процессоров р*, базирующегося на предложенном методе, составляет величину 0((к + 1)пр^2 р) операций в худшем случае.
На рис. 4 приводится графическая интерпретация зависимости величины
ТО(р, п, 5, е ) от числа процессоров р, а также указаны величины ё, ТО(р5,п,5,е), р* и
5*
р . Из рисунка видно, что величина р определяется либо как точка пересечения прямой ё с дискретной линией, определяющей
зависимость ТО(р,п,5,е ) отр, либо как ближайшая точка, которая находится ниже прямой ё.
Пример. Пусть р = 3, п = 3, 5 = 9, ё = = 48, а исходная матрица времён выполнения блоков с учётом дополнительных системных расходов по организации структуриро-
вания и параллельного использования блоков РЯ є имеет вид
Тє = М =
4 1 3 5 2 4 7 3 1
264153428 531742645
В данном случае достаточное число
процессоров р* = 9 .
1. По исходной матрице М строим вершинно-взвешенный граф О?0 (рис. 5) и находим величину Т“с(р* = 9,п,*,є ) = 45 .
По исходным данным р, п, * и М строим результирующую матрицу Т* вида (1):
Т* =
1
6
3
2
5
4
3 2
4
2
5
4
3 2
4
3 2
4
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0' 0 0 0 0 0 0
С помощью этой матрицы находим величину Тнас (р = 3,п,*,є ) = 50, которая и будет определять минимальное общее время выполнения неоднородных распределённых конкурирующих процессов в асинхронном режиме на р = 3 процессорах. Оно совпадает со значением времени выполнения процессов в совмещенной диаграмме Ганта (рис. 6). Учитывая, что
Тнас(р* = 9,п,*,є) = 45 < й =
= 48 < Тнас (р = 3, п, *,є) = 50,
рассмотрим отрезок [3,9].
2. Делением отрезка [3,9] пополам находим р1 = 6 и строим по заданным п, * и
полученному р1 = 6 результирующую матрицу М1 вида (1):
3 5 2 4
4 15 3
17 4 2
1 0 0 0' 8 0 0 0
5 0 0 0
7 7 1 0 0 0
4 2 8 0 0 0
6 4 5 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
С помощью матрицы М1 вычисляем величину ТО (р1 = 6,п,*,є ) = 45. Так как
Рис. 5. Вершинно-взвешенный граф О1ас 237
3
2
1
50
Тнас (р, п, *,є)
Рис. 6. Совмещенная диаграмма Ганта
То(р1 = 6,п*,є) = 45 < й = 48 , то рассматриваем отрезок [3,6].
3. Находим величину р2 = 4, которая является наименьшим целым полусуммы чисел 3 и 6. Далее по заданным п, * и полученному значению р2 = 4 строим результирующую матрицу М2 вида (1):
4 1 3 5 “2 4 7 7" “1 0 0 0"
2 6 4 1 5 3 4 2 8 0 0 0
5 3 1 7 4 2 6 4 5 0 0 0
“2 4 7 7 “ “1 0 0 0" “0 0 0 0"
5 3 4 2 8 0 0 0 0 0 0 0
4 2 6 4 5 0 0 0 0 0 0 0
“1 0 0 0" “0 0 0 0" "0 0 0 0"
8 0 0 0 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0 0 0 0
С помощью матрицы М 2 вычисляем
величину ТО (р2 = 4,п,5,е ) = 45 (рис. 7). Таким образом, директивное время ё = 48 выполнения п = 3 процессов реализуется при
р2 = 4, т.к. ё = 48 > ТО(р2 = 4,п,5,е) = 45 , и не реализуется при р = 3, т. к. ё = 48 < <Т°с (р = 3,п,5,е ) = 50. Следовательно, р* = 4.
Заключение. Предложенный метод нахождения минимального числа процессоров, обеспечивающих директивное время выполнения заданных объёмов вычислений в асинхронном режиме взаимодействия процессоров, процессов и блоков программного ресурса, является отправной точкой для решения подобных задач для первого и второго синхронного режимов. Результаты, полученные для одного структурированного РЯ, могут быть использованы при решении оптимизационных задач и в случае ограниченного числа программных ресурсов, что позволит установить взаимосвязи мульти-конвейерной обработки с аналогичной обработкой при одном программном конвейере, провести математическое исследование эффективности и оптимальности мультикон-вейерной организации конкурирующих процессов, вскрыть потенциальные возможности роста ускорения вычислений, выполнить сравнительный анализ различных режимов такой обработки.
Рис. 7. Результирующая диаграмма Ганта
Библиографический список
1. Воеводин, В. В. Параллельные вычисления [Текст]/ В. В. Воеводин, Вл. В. Воеводин. - СПб.: БХВ-Петербург, 2002. -608 с.
2. Коваленко, Н. С. Вычислительные методы реализации интеллектуальных моделей сложных систем [Текст] / Н. С. Коваленко, С. А. Самаль. - Минск: Беларуская наву-ка, 2004. - 166 с.
3. Иванников, В. П. О минимальном времени реализации распределенных конкурирующих процессов в синхронных режимах. [Текст]/ В. П. Иванников, Н. С. Кова-
ленко, В. М. Метельский // Программирование. - 2000. - №5. - С. 44-52.
4. Капитонова, Ю. В. Оптимальность систем одинаково распределенных конкурирующих процессов [Текст]/ Ю. В. Капитонова, Н. С. Коваленко, П. А. Павлов // Кибернетика и системный анализ. - 2005. -№ 6. - С. 3-10.
5. Павлов, П. А. Масштабируемые распределенные системы конкурирующих взаимодействующих процессов и их оптимальность [Текст]/ П. А. Павлов // Вестник Самарского государственного аэрокосмическо -го университета. - 2010. - №1. - С. 234-243.
PROBLEM OF OPTIMIZATION OF THE NUMBER OF PROCESSORS IN DISTRIBUTED PROCESSING
© 2011 P. A. Pavlov
Palesky State University
The problem of specifying time characteristics of distributed processes competing for a program resource is solved and a method of finding the optimum number of processors providing directive time of performing set volumes of calculations is suggested.
Distributed process, program resource, asynchronous mode, homogeneous distributed system, unlimited parallelism, limited parallelism.
Информация об авторе Павлов Павел Александрович, кандидат физико-математических наук, доцент кафедры высшей математики и информационных технологий, Полесский государственный университет. E-mail: [email protected]. Область научных интересов: сосредоточенная, распределенная, макроконвейерная обработка параллельных вычислительных процессов.
Pavlov Pavel Alexandrovitch, candidate of physical and mathematical sciences, associate professor of the department of higher mathematics and information technologies, Palesky State University. E-mail: [email protected]. Area of research: concentrated, distributed processing of parallel computational processes.