УДК 681.3.06: 519
О ВРЕМЕНИ РЕАЛИЗАЦИИ СИСТЕМ ПАРАЛЛЕЛЬНЫХ РАСПРЕДЕЛЕННЫХ ПРОЦЕССОВ
II.А. ПАВЛОВ
Полесский государственный университет г. Пинск, Республика Беларусь, [email protected]
ВВЕДЕНИЕ
Постоянное существование задач сверхвысокой сложности (проблемы экономики, экологии, космических исследований, изучения биологических и химических процессов, материаловедения и др.), которые нужно решать в указанных сферах, характеризуются большой размерностью, десятками сотен и миллионов независимых переменных и соответствующих ограничений. Подобные задачи актуальны и для Республики Беларусь. Это, прежде всего, задачи оптимизационного плана развития экономики страны или отдельного региона, задачи проектирования сложных систем (самолетов, энергетических котлов, ракетной техники), сооружений, технологических процессов, задачи использования спутников Земли для развития народного хозяйства, задачи военного характера. Указанные задачи можно эффективно решать, используя распараллеливание сложных процессов и обработки больших объемов данных и знаний, применяя математические методы и модели.
1. КОНСТРУКТИВНЫЕ ЭЛЕМЕНТЫ ПАРАЛЛЕЛЬНЫХ СИСТЕМ
Основой для построения математических моделей параллельных систем являются понятия процесса и программного ресурса [1].
Процесс будем рассматривать как последовательность блоков (команд, наборов действий), для выполнения которых используется множество интеллектуальных клиентов (процессоров, обрабатывающих устройств, роботов). При этом процесс называется распределенным, если все блоки или часть из них обрабатываются разными интеллектуальными клиентами.
Моменты времени начала выполнения каждого блока определяются последовательностью (tl,t2,...,ts). Предполагая, что блоки выполняются строго последовательно, в ходе своей реализации являются неделимыми и имеют длительности выполнения d> 0, j = 1, s, получим, что моменты времени завершения выполнения блоков определяются последовательностью вида (t{ + d{, t2 + d2,..., ts + ds) . Процесс является активным и находится в состоянии выполнения, если достигается равенство t.+l =t, +d,, j — 1,s — 1, т. e. для выполнения процесса выделено обрабатывающее устройство, и после завершения выполнения очередного блока процесса сразу же начинается выполнение следующего блока. Соотношение 0+1 > 0 + dj, j = 1, s — 1, означает, что после выполнения очередного блока процесс приостановлен и ожидает возможности для продолжения своего выполнения. Данная приостановка может быть вызвана необходимостью разделения использования интеллектуального клиента между одновременно исполняемыми процессами. В этом случае приостановленный процесс находится в состоянии ожидания момента предоставления обрабатывающего устройства для своего выполнения. Кроме того, приостановка процесса может быть вызвана и временной неготовностью процесса к дальнейшему выполнению. В подобных ситуациях говорят, что процесс является блокированным и находится в состоянии блокировки.
Для ускорения выполнения процессы могут обрабатываться параллельно разными обрабатывающими устройствами, влияя на поведение друг друга путем обмена информацией. Такие процессы называются кооперативными или взаимодействующими процессами.
Итак, параллельную системураспределенных процессов можно рассматривать как некоторый агрегированный процесс, получаемый путем параллельного объединения составляющих взаимодействующих процессов.
Понятие ресурса используется для обозначения любых объектов параллельной системы, которые могут быть использованы процессами для своего выполнения. По характеру использования могут различаться следующие категории ресурсов [2]:
- выделяемые (монопольно используемые, ^перераспределяемые) ресурсы характеризуются тем, что выделяются процессам в момент их возникновения и освобождаются только в момент завершения процессов;
- повторно распределяемые ресурсы отличаются возможностью динамического запрашивания, выделения и освобождения в ходе выполнения процессов;
60
- разделяемые ресурсы, особенность которых состоит в том, что они постоянно остаются в общем использовании и выделяются процессам для использования в режиме разделения времени;
- реентерабельные (многократно используемые) ресурсы характеризуются возможностью одновременного использования несколькими процессами.
Для параллельных систем характерной является ситуация, когда одну и ту же последовательность команд (действий, блоков) или ее часть необходимо интеллектуальным клиентам выполнять многократно, которую будем называть программным ресурсом, а множество соответствующих процессов - конкурирующими.
Решая проблему распределения программных ресурсов как следствие неявно решаются задачи эффективного использования остальных категорий ресурсов. С другой стороны, эффективно решая задачураспре-деления программных ресурсов, решаем проблему сокращения времени реализации множества параллельных распределенных процессов.
2. МЕТОД СТРУКТУРИРОВАНИЯ
Структурирование (декомпозиция) — это основной способ уменьшения времени выполнения больших задач, вычислений и вообще различных проблем [1]. Структурирование всегда предполагает то или иное разбиение задачи на части с последующей организацией линейного или частичного порядка на множестве этих частей. Часто вообще неясно, как правильно осуществить разбиение процесса или задачи, хотя это наиболее важная и наиболее трудная область решений.
Пусть PR — программный ресурс, п, п> 2 , число конкурирующих процессов за его использование. Требуется организовать процесс решения задачи таким образом, чтобы общее время выполнения процессов, использующих программный ресурс, было минимальным. Одной из стратегий решения данной задачи с р, р> 2 интеллектуальными клиентами является предоставление для каждого процесса отдельной копии PR. Но этот путь не всегда осуществим из-за ограниченного объема ресурсов и тем более трудно достижим в случае больших ресурсов, используемых в качестве многократно используемых. Поэтому при решении данной задачи применяется стратегия последовательного предоставления программного ресурса п процессам. В этом случае суммарное время выполнения п процессов составит величину Т =пТ, где Т- время выполнения каждым из процессов PR.
Время Tsum можно существенно сократить, если обеспечить структурирование реентерабельного программного ресурса на блоки Q];Q2,...,QS с последующей конвейеризацией как блоков по процессам, так и по интеллектуальным клиентам распределенной системы. Для этого необходимо выполнить следующие основные этапы:
- структурировать программный ресурс на блоки
- организовать параллельное (одновременное) взаимодействие процессов, блоков и обрабатывающих устройств;
- согласовать во времени выполнение различных процессов, использующих одну и ту же копию каж-
дого блока Qj, j = l,s;
- запомнить после завершения использования очередного блока и восстановить перед началом выполнения следующего блока промежуточных состояний процессов;
- запустить процессы на выполнение и завершить их;
- выбрать режим (способ) взаимодействия процессов, устройств и блоков;
- обеспечить «командную» поддержку взаимодействия процессов, обрабатывающих устройств и блоков.
Структурирование программного ресурса на блоки осуществляется, как правило, либо исходя из физического смысла задачи на этапах создания математической модели и алгоритмов ее решения, либо путем анализа последовательного процесса с целью его декомпозиции. Число блоков, на которое осуществляется структурирование программного ресурса, зависит от количества процессов и обрабатывающих устройств, длительности выполнения процесса, накладных расходов и других параметров.
Один из возможных механизмов (способов) взаимодействия процессов, интеллектуальных клиентов и блоков следующий. Блоки, процессы и интеллектуальные клиенты нумеруются в порядке l,2,...,s, 1,2,...,п и 1,2, ...;р соответственно. Причем на множестве блоков установлен линейный порядок их выполнения. Предполагается, что все п процессов используют одну и ту же копию структурированного программного ресурса. В дальнейшем под процессом будем понимать выполнение всех блоков в порядке l,2,...,s.
Специально выделенный организующий процесс предоставляет блоки структурированного PR QI,Q2,--,QS
каждому из процессов в порядке 1,2,...,п. Если блок Q/ , освобождается очередным і-м процессом,
то он предоставляется (і+І)-му процессу, а сам і-й процесс получает в свое распоряжение (j+l)-u блок, либо переводится в состояние ожидания до освобождения (j+l)-zo блока, i = \,n — 1, ] =l,s — 1 и т. д. В случае распределенной обработки монополизация обрабатывающих устройств процессами не происходит, а блоки одного и того же процесса выполняются на разных устройствах.
61
Очевидно, что при наличии в распределенной системе р интеллектуальных клиентов возможно совмещенное во времени выполнение процессов. Запоминание и восстановление промежуточных состояний процессов, запуск процессов на выполнение и их завершение, набор режимов взаимодействия процессов, обрабатывающих устройств и блоков осуществляет специальный организующий процесс.
Проблема обоснования метода структурирования программных ресурсов на параллельно выполняемые блоки носит комплексный характер, что порождает ряд сложных в математическом отношении задач. Для их решения требуется прежде всего построение математических моделей, адекватно отражающих различные аспекты взаимодействия множества процессов, с учетом их физической специфики, дополнительных затрат и т. д. Анализ показывает, что на пути решения этой комплексной проблемы возникают математические задачи дискретно-комбинаторного характера, для решения которых эффективны аппарат теории графов, линейные диаграммы Ганта, теория расписаний, методы комбинаторной оптимизации.
3. МАТЕМАТИЧЕСКАЯ МОДЕЛЬ ПАРАЛЛЕЛЬНЫХ РАСПРЕДЕЛЕННЫХ ПРОЦЕССОВ
Будем говорить, что нижеперечисленные объекты образуют математическую модель конкурирующих распределенных процессов: р, р > 2 , интеллектуальных клиентов; п, п > 2, распределенных конкурирующих процессов; s, s> 2, блоков структурированного программного процесса; матрицу Т = [?(> ], i = \,n, j = l,s, времен выполнения блоков процессами. Введем в рассмотрение параметр £ > 0, характеризующий накладные расходы, затрачиваемые на организацию параллельного выполнения блоков программного ресурса множеством конкурирующих процессов [1,3].
Система п распределенных конкурирующих процессов называется неоднородной, если времена выполнения блоков программного ресурса QI,Q2,...,QS зависят от объемов обрабатываемых данных и/или их структуры, т. е. разные для разных процессов.
Систему распределенных конкурирующих процессов будем называть однородной, если времена выполнения Qj -го блока каждым из i-x процессов равны, т. е. ttj = г , i = \,n, j = 1, J.
Систему конкурирующих процессов будем называть одинаково распределенной, если времена t выполнения блоков Qj, j _ 1,5, программного ресурса каждым из i-x процессов совпадают и равны tl для всех i = 1 ,п , т. е. справедлива цепочка равенств tn — tl2 =... = tls = tj для всех i = \,n .
4. РЕЖИМЫ ОРГАНИЗАЦИИ ПРОЦЕССОВ, ИНТЕЛЛЕКТУАЛЬНЫХ КЛИЕНТОВ И БЛОКОВ ПРОГРАММНОГО РЕСУРСА
Предполагается, что взаимодействие обрабатывающих устройств, процессов и блоков программного ресурса подчинено следующим условиям:
1) ни один из блоков программного ресурса не может обрабатываться одновременно более чем одним интеллектуальным клиентом;
2) ни один из интеллектуальных клиентов не может обрабатывать одновременно более одного блока;
3) обработка каждого блока программного ресурса осуществляется без прерываний;
4) распределение блоков программного ресурса по обрабатывающим устройствам для каждого из процессов осуществляется циклически по правилу: блок с номером j = kp + i, j = 1,5, 1 = 1 >Р, к > 0 распределяется на обрабатывающее устройство с номером i.
Введем дополнительное условие, которое определяет асинхронный режим взаимодействия процессов, интеллектуальных клиентов и блоков:
1) отсутствуют простои обрабатывающих устройств при условии готовности блоков, а также невыполнение блоков при наличии устройств.
5 Введем также условия:
2) для каждого из п процессов момент завершения выполнения j-го блока і-м интеллектуальным клиентом совпадает с моментом начала выполнения следующего (]+ 1)-го блока на (і+1)-м обрабатывающем устройстве, i = \,p — \, j = l,j — 1;
3) для каждого из блоков момент завершения его выполнения 1-м устройством совпадает с моментом начала его выполнения (1+1)-м процессом на том же обрабатывающем устройстве, I = \,п — 1.
Если к условиям 1-4 добавить поочередно условия 6 и 7 соответственно, то получим два базовых синхронных режима:
— первый синхронный режим, определяемый условиями 1—4, 6, обеспечивает непрерывное выполнение блоков программного ресурса внутри каждого из процессов;
62
- второй синхронный режим, определяемый условиями 1—4, 7, обеспечивает непрерывное выполнение каждого блока всеми процессами.
5. ВРЕМЯ РЕАЛИЗАЦИИ РАСПРЕДЕЛЕННЫХ ПРОЦЕССОВ
Интерес представляют задачи, связанные с получением математических соотношений минимального общего времени взаимодействия обрабатывающих устройств, процессов и блоков структурированного программного ресурса в различных режимах.
Асинхронный режим.
Обозначим минимальное общее время выполнения п неоднородных распределенных процессов на р обрабатывающих устройствах в асинхронном режиме, с учетом введенного параметра £ , через ТаЕ (p,n,s,e). Для нахождения Тас (p,n,s,e) рассмотрим случаи неограниченного (2 < s < р) и ограниченного (s > Р ) параллелизма.
Пусть число блоков структурированного программного ресурса не превосходит числа интеллектуальных клиентов, т. е. 2 < s < р . В этом случае без ограничения общности можно считать, что каждый Q, -й блок закреплен за j-м обрабатывающим устройством, У = 1 > ■'>. Тогда для выполнения п процессов достаточно взять р = s обрабатывающих устройств, а остальные Р — s будут не задействованы. Поэтому для определения минимального общего времени Т“с (p,n,s,e) можно воспользоваться функционалом задачи Веллмана-Джонсона, который в нашем случае будет иметь вид [4]:
T“c(p = s,n,s,e)= max
1<«J <и2 <И
ZXl +■■•+ X) ^ ,
где ty=t..+£, i = \,n, j = \,s ,a u„u2,...,us_x -целые числа.
Задачу определения Тас (p,n,s,e) можно решить более эффективно с помощью аппарата сетевых вершинновзвешенных графов (рис.1) [5]. Минимальное общее время в случае неограниченного параллелизма будет определяться длиной критического пути из начальной вершины в конечную. Каждой вершине графа соответствует значение tE =ty + £ , / = 1 ,п, j = l,s.
Рис. 1. Сетевой вершинно-взвешенный граф
В случае ограниченного параллелизма, т.е. когда s> р, s = kp + r. к> 1, 1 <г<р, исходную матрицу времен выполнения блоков процессами с учетом дополнительных системных расходов Т = Щ \, j = 1,кр +г разбиваем на (к+1)-у подматрицу Д , / = \,к +1 размерностью пхр каждая. По каждой из подматриц строим линейную диаграмму Ганта, которые отражают во времени обработку очередных р блоков всех п процессов р обрабатывающими устройствами (р=3, s=8). Последняя диаграмма отражает выполнение последних г=2 блоков (рис.2).
63
Рис. 2. Несовмещенная диаграмма Ганта
В этом случае общее время выполнения всех процессов будет определяться как сумма длин критических путей каждой из подряд идущих несовмещенных диаграмм Ганта. Это время можно существенно сократить, если воспользоваться приемом совмещения последовательных диаграмм Ганта по оси времени справа налево. Причем совмещение осуществляется поблочно, начиная со второй диаграммы, на максимально возможную величину таким образом, чтобы не нарушались условия, определяющие асинхронный режим. В результате совмещения получим результирующую совмещенную диаграмму Ганта (рис.З).
Рис. 3. Совмещенная диаграмма Ганта
Совмещенная диаграмма Ганта определяется результирующей матрицей Т‘ размерностью (к + 1)я х (к + \)р, которая является блочной, симметричной, верхнедиагональной относительно второй диагонали, типа Ганкелевой порядка к+1 (рис.4).
Т =
Т, Т2 77 тк т*- 1к+\
Тг т; т; Т1 *'* 'Л+1 0
Т, .. 24 Т, ... 0 0
Тк 'Г 1 к+1 0 ... 0 0
TL, 0 0 ... 0 0
Рис. 4. Матрица Т
Для однородной системы конкурирующих процессов, т.е. когда времена выполнения Qj-го блока каждым из процессов равны, т. е. Д = f, i = l,n, j = l,s , минимальное общее время в случае 2 < s < р в асинхронном режиме составляет величину Тас(p,n,s,e), равную:
Т°с (р, п, s, е) = Г/ + (и -1) max tj
Kj<s J
64
где {Ц ,t\ ,■ ) - длительности выполнения каждого из блоков с учетом накладных расходов,
S
a Ts = 2_^‘' - длительность выполнения всего распределенного процесса.
i=1
Для системы одинаково распределенных конкурирующих процессов, когда справедлива цепочка равенств tcn — /,2 =tc, t =t,+e , для всех i=\,n , минимальное общее время составляет величину
Ty(p,n,s,e), равную
T°'(P,n,s,e)
Т" + (s - 1)тахГ, s<p,
Ki<n 1
kTn +{p-\)maxte, s = kp, к> 1,
1</<л •
(k + l)T" + (r-l)maxf;, s = kp + r, k> 1, \<r<p,
где T" = Yjf - суммарное время выполнения каждого из блоков Q, , j = 1,5 , всеми п конкурирующими
/.л
процессами.
Первый синхронный режим [3].
В случае, когда число интеллектуальных клиентов является достаточным, т. е. 5 < р, для определения величины минимального общего времени выполнения неоднородных взаимодействующих процессов в первом синхронном режиме (p,n,s,e) имеет место формула:
P{p,n,s,£) = y'msx
- 1 - и< г
Еп-
i=1
-Ес*
i=1
XX’
j=1
i — Uw 1 моменты времени начала выполнения очередного процесса по отношению к предыдущему, E*w - время выполнения последнего процесса. Эту формулу можно получить также
i=1
из функционала многостадийной задачи теории расписаний при условии, что каждое требование обслужива-
где
шах
1 <и<р
ТЛ-Т.Ч
+1J
1=1
i=i
ется непрерывно одним прибором за другим [4].
В случае, когда число обрабатывающих устройств является недостаточным, например, s = kp , к> 1, аналогично с асинхронным режимом выполняется разбиение матрицы времен выполнения блоков программного ресурса Те на к подматриц по р столбцов в каждой. По каждой из подматриц строится линейная диаграмма Ганта. Воспользовавшись приемом совмещения последовательных диаграмм по оси времени, для вычисления минимального общего времени Т„(р,п,кр,е) в первом синхронном режиме имеет место выражение
Т/ = У2 тах
TH4p,n,kp,e) = Yj;-y2o<,
I=1 /=1
р
+ ХХ 1 — 1 к время выполнения 1-й группы блоков программного 1=1 ' ' *’
ресурса всеми п процессамир интеллектуальными клиентами, а <5( = min{<5;,<5;} — длина отрезка максимально возможного совмещения двух последовательных диаграмм Ганта по оси времени. В свою очередь, <5, — разность между моментом начала выполнения j-zo блока первого процесса в (1+1)-й группе блоков и моментом
EV'-EC
;=1 1=1
завершения выполнения j-го блока последней процесса в l-й группе блоков:
р 1-1
6, = min
1 <i<p
Е с' +ЕС
w=j+1 W=1
/ = 1,Аг—1 •
65
^ i 'Р' г iC yc'jt j'm еж л у началом выполнения первого блока і-м процессом в (!' 1 )-(< группе блоков и моментом завершения выполнения р-го блока і-м процессом в l-й группы блоков:
6, = min [7/
-е;:\ 1 = \, *-1.
ще t= ^- + е = tw_
op+j
- £ - время выполнения і-м процессом j-го блока в l-й группе блоков с учетом па-
раметра £ , а Е./ = У max
1 *—'\<и<р
<7=1
и и -1
/ j'aw / .,*47+1.и
w~ I w--\
+E^; - время завершения обработки і-м процессом j-го блока
программного ресурса в l-й группе блоков, < — V> , j —'чР , I — к
Если взаимодействие обрабатывающих устройств, процессов и блоков структурированного программного ресурса осуществляется в первом базовом синхронном режиме, то минимальное общее время Tp(p,n,s,e) выполнения однородных распределенных конкурирующих процессов с учетом параметра накладных расходов е > 0 определяется следующим образом:
Tl0(p,n,s,£)
(л-І)тах/, s<p,
' fa > ~
к к — 1
E7^ -EminW’/’<M’ s = kp, k> 1,
/=1 /=1
к к—l
E7^ +7T+i “Е^/ ~Фк’ s = kp + r, k> 1, 1 <r<p,
1=1 /Н
где
» у-1
ф. = min 1 <)<р Ес'+Ес'-' И-=у'+1 ц>=| р, =(«-!) min max/y,+1, тахГ’' Г_ у _-я br f J / = 1,Аг —1 9 7
Тк^=(п-\)гтхгк^ +УУ 1
1<Г<г 7 ^ ' '
Фк = тіп{ф4 ,фк}
фк - min
\<j<r
Ec*+1 + E c*
W=l w=j+\
ФІ
= (« — l)min
max/
\<J<r
£,fc+l
, max f,,k
\<і<р J
Если взаимодействие обрабатывающих устройств, процессов и блоков структурированного программного ресурса подчинено условиям первого базового синхронного режима, то для любых р> 2 , п> 2 , s> 2 , £ > 0 минимальное общее время выполнения одинаково распределенных конкурирующих процессов определяется по формулам:
Е'«+<*-»
к +Emax<c, -V.0}
S < р,
T^(p,n,S,£)
kT^(p,n,p,£)-(k- s = kp, k> 1,
кТ'ор(р,п, р,£) + T0lp(p,n,r,£) -(к- 1)тіп{ш, ,шг} - minify,
s = kp + r, к> 1, 1 <r<p.
где
К(р,п,р,е)=^г,
/г:1
^ +Етах^ 1 ,
/-2
О), =(/’-l)min{/,V„E}. ш2 = Т^(р,п,р,£) - pmaxt^
66
T\{^,r} = ^r + (r- uk + Y'max{/f, —t ,0}[
ь- i" s '""y
S. =(r— f)min{([,(^} + (p — r)t^
Ci = и1лр,л,р,£)- max[7^(p,/, - T'{p,i,r,e) + /*,.].
ВЫВОДЫ
Решены задачи определения минимального общего времени реализации множества распределенных кооперативных процессов, конкурирующих за многократно используемый ресурс. Решение было проведено для систем параллельных распределенных процессов для асинхронного и первого синхронного режимов взаимодействия процессов, интеллектуальных клиентов и блоков структурированного программного ресурса. При этом был использован аппарат теории расписаний и теории сетевых графов, что позволило разработать методы нахождения точных значений минимального общего времени выполнения распределенных процессов в параллельных распределенных системах. Концепция построения параллельных распределенных систем конкурирующих процессов и их математическая основа является базой для эффективной организации процессов различной природы в экономике, медицине, технологических процессов и т.д.
ЛИТЕРАТУРА
1. Коваленко, Н.С. Вычислительные методы реализации интеллектуальных моделей сложных систем / Н.С. Коваленко, С.А. Самаль. - Ми.: Бел. навука, 2004. - 166 с.
2. Гергель, В.П. Основы параллельных вычислений для многопроцессорных вычислительных систем / В.П. Гергель, Р.Г. Стронгин. - Н. Новгород: ННГУ, 2001. - 122 с.
3. Kapitonova, Yu. V. Optimality of systems of identically distributed competing processes / Yu. V. Kapitonova, N.S. Kovalenko, P.A. Pavlov // Cybernetics and Systems Analysis. - New York: Springer, 2006. - P. 793-799.
4. Танаев, B.C. Теория расписаний. Многостадийные системы / В.С. Танаев, Ю.Н. Сотсков, В.А. Струсевич. - М.: Наука, 1989.-328 с.
5. Емеличев, В.А. Лекции по теории графов / В.А. Емеличев, О.И. Мельников, В.И. Сарванов, Р.И. Тышкевич. - М.: Наука, 1990. - 384 с.
6. Коваленко, Н.С. Математическая модель организации производственного процесса на поточных линиях / Н.С. Коваленко, П.А. Павлов // Проблемы прогнозирования и государственного регулирования социально-экономического развития: Материалы VII Междунар. науч. конф., Минск, 19-20 окт. 2006 г. - Мн.: НИЭИ Министерства экономики Республики Беларусь, 2007. - С. 326-336.
ABOUT THE TIME OF REALIZATION OF SYSTEMS OF THE PARALLEL
DISTRIBUTED PROCESSES
P.A. PAVLOV Summary
The author has solved the problems of definition the minimal general time necessary for realization a set of the distributed cooperative processes. The decision is led for asynchronous and the first synchronous modes of interaction of processes, intellectual clients and blocks of the structured programme resource.
Поступила в редакцию 12 июня 2008 г.