Управление, вычислительная техника и информатика
УДК 681.3.06
ОПРЕДЕЛЕНИЕ ОБЪЕМОВ ПЕРЕДАЧ ДАННЫХ В СЕТИ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ ДЛЯ ЗАДАННОЙ МОДЕЛИ ПРОГРАММНОЙ НАГРУЗКИ
А.В. Погребной
Институт «Кибернетический центр» ТПУ E-mail: [email protected]
Выделены факторы, которые определяют объем данных, передаваемых между станциями многопроцессорной вычислительной системы. Предложены методики построения информационного графа модели программной нагрузки и его разрезания для формирования плана использования ресурсов станций. Показано, что критерий, принятый в задаче разрезания, соответствует минимизации объема передаваемых данных.
Введение
При проектировании распределенных систем реального времени (СРВ) снижение затрат времени на выполнение прикладных функций за счет распараллеливания приводит к росту объемов передач данных в сети вычислительной системы. Если число микропроцессорных станций вычислительной системы задано, то объем передаваемых данных между станциями сети зависит от следующих факторов - условий функционирования объекта управления, значений параметров программных модулей, реализующих прикладные функции СРВ и составляющих основную часть программной нагрузки на систему, распределения программной нагрузки по станциям.
Объем передаваемых по сети данных соответствует определенным затратам времени, которые увеличивают времена завершения выполнения прикладных функций программной нагрузки. Затраты времени на передачу данных по сети могут оказаться соизмеримыми с временем работы процессоров при выполнении модулей программной нагрузки. Поэтому при проектировании СРВ анализ влияния перечисленных факторов на объем передаваемых данных в сети, имеет важное значение для принятия решений при проектировании структуры сети вычислительной системы.
Современные СРВ, как правило, разрабатываются в сетевом варианте. Разработчик распределенной СРВ, приступая к выполнению проекта, испытывает большую неопределенность относительно необходимой совокупности станций разных видов, их размещения на территории объекта, топологии сети, способной своевременно передавать данные
между станциями, распределения программной нагрузки по станциям. Эти задачи взаимосвязаны, но методов их совместного решения нет. Поэтому автономно решается задача определения числа станций, после этого вручную принимается вариант топологии сети и далее решается задача распределения программной нагрузки по станциям чаще всего по критерию минимальной загрузки сети [1, 2].
Для многих других приложений, не связанных с проектированием жестких СРВ (автоматизация проектных и научных работ, управление производством и т. п.), число станций и топология сети предопределяется объектом и принимается заданной. В этих случаях основной становится задача распределения программной нагрузки по станциям сети и получение плана использования ресурсов. Известно много работ, в которых задача получения плана использования ресурсов формулируется как нелинейная задача математического программирования с булевыми переменными, например [1]. Такие задачи можно решать, используя метод линеаризации, но как отмечено в [1] для распределения 25 программных модулей по 15 станциям получается линейная задача на 2500 переменных и 8000 ограничений.
Применительно к распределенным СРВ обе задачи подробно изложены в [2]. Задача определения числа станций и их размещения в [2] ставится как задача линейного программирования, но уже для территории размещения станций, представленной сеткой размерностью 20x50, число переменных достигает одного миллиона. Задача получения плана использования ресурсов в [2] сформулирована как нелинейная задача математического программирования с булевыми переменными для двух вариантов топологии сети.
Помимо большой размерности задач, основной недостаток таких подходов заключается в том, что при решении задачи получения плана использования ресурсов, топология сети принимается заданной. Если топологию сети учитывать путем введения дополнительных переменных, то получается неприемлемая для решения задача.
Существенным недостатком является также и то, что не учитываются условия функционирования объекта управления, такие как условия поступления входных данных и, соответственно, запуска процессов, условия обновления состояний выходных данных, правила селекции состояний выходных данных при передаче их между процессами. Перечисленные условия непосредственно влияют на объем данных, передаваемых в сети.
Следуя технологии модульного проектирования распределенных СРВ [3], предлагается другой подход к решению рассматриваемых задач, в котором условия функционирования объекта отображаются на модель программной нагрузки и учитываются при определении минимального объема данных, передаваемых между станциями. Задача определения топологии сети решается для полученного объема данных по критерию минимальных затрат времени на передачу данных между станциями сети. Эта задача особенно важна при проектировании жестких СРВ. Для определения числа станций используется метод, изложенный в [4]. При этом все постановки задач имеют размерность, приемлемую для практического применения.
Основная цель исследований, представленных в данной статье, сводится к тому, чтобы для заданных условий функционирования объекта, модели программной нагрузки и числа станций отобразить условия функционирования объекта на модель программной нагрузки и определить объем данных, который потребуется передавать между станциями при функционировании СРВ. При этом задача распределения программной нагрузки по станциям сформулирована как задача разрезания графа на минимально связанные подграфы. В статье также определяется оценка качества вариантов разрезания и вводится граничная величина этой оценки.
Исследования выполнены в условиях, когда модель программной нагрузки представлена в форме графа потока данных (ГПД), реализующего прикладные функции проектируемой СРВ [3]. В ГПД два вида вершин - фрагменты алгоритмов (модули) и переменные (данные). Дуги в графе связывают модули и данные и указывают на отношение модулей к потреблению и формированию тех или иных данных.
Анализ условий потребления ресурсов
При составлении плана использования ресурсов станции рассматриваются как объекты, предоставляющие ресурсы - процессоры и память. Объектами потребления этих ресурсов являются вершины ГПД - данные и модули. Наличие ресурсов и их потребление оценивается на некотором интервале
времени названном циклом моделирования. Величина интервала времени цикла моделирования подбирается так, чтобы отрезок времени (цикл обновления [1]), отводимый на однократное выполнение для любой прикладной функции СРВ, укладывался в нем целое число раз. Например, если циклы обновления для прикладных функций СРВ соответствуют отрезкам {4}={2,3,5,10}, то цикл моделирования принимается равным наименьшему общему знаменателю / *=30 либо величине *, ^=2,3,....
Задача составления плана заключается в том, чтобы для всех объектов ГПД (данные, модули, программы) указать конкретные станции, ресурсы которых они будут использовать. При назначении данных на станцию используется ресурс памяти. Модуль в общем случае может назначаться на две станции. Для упрощения задачи будем считать, что операция и программа модуля всегда потребляет ресурсы только одной станции. В этом случае объектами потребления ресурсов становятся модули и данные, что в явном виде и отражает ГПД. Принимается также, что данные, как и модули, не могут делиться на части, то есть назначаются на ресурсы станции целиком. Задача планирования, таким образом, сводится к задаче распределения модулей и данных по станциям.
Для распределения модулей и данных необходимо установить для них объемы потребляемых ресурсов. Ресурс процессора будем оценивать временем, которое отводится на выполнение модулей в одном цикле моделирования. Соответственно для каждого модуля /теУ, т=1,2,...,М, процессорное время, потребляемое модулем за один цикл моделирования, составит величину ттрт. Здесь тт - время выполнения модуля /т, а рт - частота выполнения модуля/т в одном цикле моделирования.
Память /-ой станции, выделяемую для хранения компонентов ГПД, обозначим величиной Р, /=1,2,...,и. В памяти размещаются входные и выходные данные, программы модулей и промежуточные данные, формируемые и потребляемые модулями. Входные и выходные данные ^еБ, д=1,2,...^, требуют для размещения память рч и обновляются в соответствии с циклами поступления и обновления. Программы модулей требуют память рт и занимают ее на всем цикле моделирования.
Промежуточные данные делятся на два вида. К первому виду относятся данные йде Б, состояния которых обновляются после каждого выполнения модуля производителя и требуют память в размере р. Второй вид соответствует ситуации, когда необходимо хранить несколько состояний данного йчеБ, полученных согласно заданному правилу присоединения состояний [3]. Наличие на входе у модуля потребителя данного с некоторым множеством состояний предполагает возможность селекции (выбора) из этого множества определенных состояний. При разработке ГПД правила обновления с присоединением состояний должны быть согласованы с правилами селекции. Чаще всего правила
селекции диктуют необходимость использования определенных правил присоединения. Возможна, также ситуация, когда число присоединяемых состояний превышает число состояний, получаемых модулем за один цикл моделирования. Во всех этих случаях данное 4?еБ, для которого определено правило присоединения состояний, требует память в размере Ьрг
Построение информационного графа для модели программной нагрузки
Объем данных, передаваемых по дугам ГПД (4/ и (4ш/), вычисляется для одного цикла моделирования и принимается в качестве весов дуг информационного графа. Для решения задачи распределения модулей и данных не имеет значения в каком направлении передаются данные - к модулю или от него. Поэтому на основе ГПД можно построить информационный граф с матрицей смеж-
ш=1, если данное 4Ч ин-, в противном случае.
ности вершин А^аЛ^ а„, цидентно модулю/ш, аш=0,
Вес гт дуги (4/ зависит от размера памяти р ,, занимаемой данным 4, частоты передачи данного 4 по дуге (4/ш) и числа присоединяемых состояний. Частота передачи данного по дуге (4Ч/ш), инцидентной модулю /ш, равна частоте выполнения этого модуля рш в цикле моделирования. Правила присоединения и селекции определяют число состояний сш данного 4, передаваемых по дуге (4?/ш).
На основе матрицы А, величин ррш чисел передаваемых состояний с ш строится матрица весов элементы которой определяются по выражению
дт дт г д гт
Рд Рт
(1)
Пример ГПД, содержащего 5 модулей и 9 данных, показан на рис. 1. В ГПД данные 4Ч пронумерованы в кружках, номера модулей /ш проставлены рядом с планками. Число на дуге обозначает частоту передаваемых по ней данных за один цикл моделирования. Рядом с входными данными указываются условия их поступления, например Ц(2). Здесь в скобках указано число тактов цикла поступления и запуска соответствующего процесса. Числа, расположенные рядом с кружками, указывают на число тактов цикла обновления.
ГПД на рис. 1, содержит 4 процесса [3]. Три из них запускаются циклически по условиям поступления Ц(1), Ц(5) и Ц(2) и соответствующими циклами обновления: 1, 5, 2. Четвертый процесс запускается сигналом В с заданной вероятностью поступления и формирует выходной сигнал в группе к-1. Из рис. 1 следует, что необходимость хранения и передачи более одного состояния данных возникает в двух случаях. Модуль/ запускается после того как модуль / сработает 5 раз. К этому моменту будет получено 5 состояний данного 44, которое поступает на вход модуля /3. Аналогично модуль / запускается после того как получено 2 состояния 45.
Поэтому в матрице С, элементы которой определяют число передаваемых состояний, рис. 2, отражено, что все данные предаются по одному состоянию за исключением двух указанных случаев. На вход модуля/5 от данного 44 поступает одно из пяти состояний, что определено правилом селекции.
Ц(1)
Ц(2)
Рис. 1. Пример ГПД
2 3 4 5
2 3 4 5
с=
1
1
1
1 5 1
1 2
1 1 1
1
1
1
я-
8
20
15
1
20 20 2
40 40
10 10 2
2
2
1
О = 10 5 2 5 1
гт
Рис. 2. Пример построения матриц С и Н
Промежуточное данное 46 относится к первому виду, то есть обновляется после срабатывания модуля /2. Справа у матрицы С приведены размеры данных р, а снизу рш - частоты выполнения модулей, подсчитанные исходя из цикла моделирования, принятого равным /*=10 тактов. Элементы матрицы Я, рис. 2, определены по выражению (1).
Формирование плана использования
ресурсов станций
Для решения задачи распределения модулей и данных по ресурсам станций мы имеем информационную графовую форму модели программной нагрузки, для которой определены объемы потребления модулями процессорного времени в размере рштш, памяти для хранения данных в размере Ьр9 и программ модулей в размере рш, а также объемы данных гш, передаваемых по дугам графа за один цикл моделирования. Критерием качества решения задачи является нахождение варианта распределения модулей и данных по станциям, доставляющего минимальный суммарный объем данных, передаваемый в локальной сети. Исходя из названного критерия при решении задачи важно,
5
1
ч
1
2
3
4
5
6
7
9
чтобы модули и данные, между которыми передается большой объем информации, были распределены на одну станцию. Следовательно, решение задачи должно быть таким, чтобы суммарный объем данных, передаваемый по дугам, связывающим модули и данные, размещенные в разных станциях, был минимальным. Такое решение соответствует известной задаче разрезания графа на минимально связанные части [5].
Применительно к рассматриваемой задаче распределения модулей и данных имеем информационный граф для модели программной нагрузки в виде двудольного взвешенного графа О=(Б,¥,Я), где Б - множество вершин данных Б=Ц} с указанием для каждого 4деБ размера требуемой памяти Ьр; ¥ - множество вершин модулей ¥={/т} с указанием для каждого /т<=¥ величины потребляемого процессорного времени рттт; Я - матрица объемов передаваемых данных между вершинами графа.
Сумму весов реберного соединения 8. частей О;=(Б;,¥Д) и 0-=(Б],¥р8]) графа О обозначим величиной г., Гу = Е гдт. Здесь ^т - ребро графа О,
•дт
связывающее вершины и /т; 8. - множество ребер, связывающих вершины, одна из которых принадлежит части О, а вторая - части О. Размер частей О$ определяется ресурсами станций по памяти Р1 и процессорному времени Т, которое не может превышать цикл моделирования. В принятых обозначениях задача разрезания графа О на п частей О, /=1,2,...,п, запишется в виде:
п п
тп Г=ЕЕг; (2)
1=1 ]=1
Е ЪЛ - р ’ 1 = 1’2’-’ п (3)
Е РтТт - Т ’ 1 = 1’2’...’ П- (4)
/т^.
Разрезание графа О производится на п частей, по числу станций вычислительной системы. При этом должны соблюдаться условия:
Е ЪяРя ’ ЕРтТт -ЕТ - (5)
/=1 /теГ 1= 1
Я •> т
Выполнение соотношений (5) обуславливает возможность решения задачи (2)-(4), то есть ресурсов вычислительной системы должно быть достаточно для распределения всех вершин графа с учетом значений параметров по памяти и процессорному времени. Как правило, значения Р! и Т задаются с некоторым коэффициентом запаса.
Оценка объема данных, передаваемых в сети,
для принятого плана использования ресурсов
Наличие матрицы Я позволяет оценивать решения задачи разрезания графа О, что соответствует также и оценке решения задачи распределения мо-
дулей и данных по станциям. Задачу распределения будем рассматривать как задачу разбиения вершин множества V информационного графа G на подмножества вершин V. Вариант разбиения w из множества возможных вариантов W обозначим совокупностью {V}w множеств вершин V. Варианту we Wсоответствует множество ребер Sw=Sip где S, -множество ребер, связывающих между собой вершины из множеств V и V разбиения {V} w. Таким образом, общий объем передаваемых по сети данных за один цикл моделирования для варианта разбиения {V}w составит величину rw, rw = V rqm. Полу-
sqm eSw
чим величину rw для варианта распределения модулей и данных по двум станциям для примера ГПД (рис. 1). В качестве начальной вершины для формирования множества будем использовать правило выбора вершины dq с максимальным суммарным
M
весом инцидентных ребер r* ra = max V r .
q
m=1
Для нашего примера < соответствует вершине d5, то есть сумме весов 5-ой строки матрицы R (рис. 2). Величина r5*=80 ед. объема. Поэтому вершина d5 и связанные с ней вершины (модули) f1 и / включаются в формируемое множество, то есть распределяются на одну станцию. В это же множество включаются вершины d1,d6,d8. При таком распределении модулей и данных множества V1 и V2 связаны ребрами Sw=Su={(d4f1),(d6f;),(d6/2)}. Соответственно, объем передаваемых данных rw составляет 32 ед. Заметим, что вполне очевидный вариант разбиения, показанный на рис. 1, включает два ребра S,w=S;,2={(d5^),(d4^)} и дает оценку <=<2=42 ед. Эта оценка существенно хуже оценки rw =32 ед.
Для оценки разбиения вершин информационного графа G=(V,R) на подмножества V, j=1,2,...,n введем оценку компактности этих подмножеств. Компактность подмножества V будем оценивать величиной Rj, равной сумме весов ребер, связывающих вершины этого подмножества. Тогда для оценки компактности варианта разбиения {V}w можно
n
использовать величину Rw, Rw = V Rj Оценки Rw и
j=i
rw разбиения {V}w взаимосвязаны - увеличение оценки Rw соответствует уменьшению оценки rw.
Вариант разбиения {VJ}w, который соответствует максимальной оценке ДД будем именовать компактным разбиением (Ж-разбиением). Для получения разбиения {Vj}w могут быть использованы алгоритмы, предложенные в [4]. Данные алгоритмы позволяют получить разбиения с локальным оптимумом величины Rw. Такие разбиения будем именовать локальными компактными разбиениями (ЛК-разбиениями). Поэтому при использовании данных алгоритмов очень важно иметь возможность оценить близость полученного ЛК-разбие-ния к К-разбиению. С этой целью предлагается ввести некоторую граничную оценку компактно-
сти R), которую в идеале может получить К-разбие-ние. Такая оценка вычисляется исходя из предположения о том, что в идеальном разбиении каждая вершина ve V, i=l,2,...,z попадает в множество V* с максимально возможной оценкой компактности. В соответствии с этим предположением для каждой вершины vte V, сформируем множество V, |Vi=! VI, с максимально возможной оценкой компактности Д. Тогда граничная оценка компактности R определяется выражением:
Ro =—£ R, —j = \V\ = const.
— i=i
Оценка R является верхней граничной оценкой для оценки Rw* К-разбиения, то есть между этими оценками должно соблюдаться условие
К ^ Ro- (6)
В идеальном случае, когда соблюдается высказанное выше предположение, данные оценки могут совпадать. Это означает, что имеет место идеальное К-разбиение. Оно характеризуется тем, что для вершин, vte V* нельзя построить множества V^V*, ve V, IV=| VI, с оценкой компактности лучше, чем у множества Vj.
Условие (6) нетрудно доказать. Для этого воспользуемся рис. 3. На рис. 3 представлено одно из множеств V* К-разбиения [VJ}w, содержащее 5 вершин, —=5.
Для каждой вершины построены множества Vi, которые на рис. 3 условно показаны кривыми линиями, проходящими через соответствующие вершины. Оценку компактности множества Vi обозначим величиной Rij. Оценка Rij соответствует наилуч-
СПИСОК ЛИТЕРАТУРЫ
1. Chu W.W., Holloway L.J., Lan M.T., Efe K. Task allocation in distributed data processing// IEEE Trans. on Computers. - 1980. - V. 13. - № 11. - P. 57-69.
2. Шенборт И.М., Алиев В.М. Проектирование вычислительных систем распределенных АСУ ТП. - М.: Энергоатомиздат, 1989. - 88 с.
3. Погребной В.К. Системы реального времени. Моделирование и автоматизированное проектирование. - Томск: Изд-во ТПУ, 2006. - 208 с.
шей оценке компактности множества V, включающего вершину v, то есть R>R*. Это следует из того, что оценка R не может быть меньше R, так как при формировании множества V всегда есть возможность сформировать Vj= Vj, и тогда оценка Д=Я/.
Из рис. 3 следует, что все V^VJ, поэтому оценки R превышают R. Из этого следует, что усредненная оценка по пяти множествам также превышает
1 5 *
оценку R, то есть — R*. Усредненные оцен-
5 i=i
ки для других множеств Vj Ж-разбиения {V}w полу-
1 — *
чим по аналогичному выражению —£ R > R •
— >=1
Тогда для всех множеств V] можно записать
n 1 — n
£ (— £ Rjj) > £ Rj. Учитывая, что n—=z, получа-
j=i —j ¡=1 j=1
1 n —j 1 z
ем условие (6), —££Rij =—£Ri = Ro > R**•
— j=1 ¡=1 —j ¡=1
Заключение
Информационный граф, полученный в результате анализа условий функционирования объекта, дает полное представление о передачах данных между вершинами графа в одном цикле моделирования. Это позволяет получать оценки по загрузке сети вычислительной системы в зависимости от планов использования ресурсов, которые определяются вариантами разбиения вершин информационного графа. Наличие таких оценок позволяет принимать решения по корректировке условий функционирования программной нагрузки (условия запуска процессов, обновления и селекции данных) и структуры сети вычислительной системы.
Возможность получения граничной оценки имеет важное познавательное значение при исследовании Ж-разбиений и практическое - при решении задачи минимизации объемов передач данных. Так, после получения ЛЖ-разбиения, можно оценить его отклонение от граничной оценки и, с некоторой погрешностью, от Ж-разбиения. Если отклонение велико, то имеет смысл продолжить поиск другого ЛЖ-разбиения с лучшей оценкой. Более того, если оценка этого разбиения совпадает с граничной, то имеет место идеальное Ж-разбиение.
4. Погребной А.В. Определение числа и топологии размещения станций многопроцессорной вычислительной системы // Известия Томского политехнического университета. - 2006. -Т. 309. - № 7. - С. 160-164.
5. Пантелеев А.В., Летова ТА. Методы оптимизации в примерах и задачах. - М.: Высшая школа, 2002. - 544 с.
Поступила 11.12.2006 г.