Методы декомпозиции моделей непрерывных систем для моделирования в условиях распределенных ресурсов

КОМПЬЮТЕРНЫЕ

УДК 681.3.001.57

МЕТОДЫ ДЕКОМПОЗИЦИИ МОДЕЛЕЙ НЕПРЕРЫВНЫХ СИСТЕМ ДЛЯ МОДЕЛИРОВАНИЯ В УСЛОВИЯХ РАСПРЕДЕЛЕННЫХ РЕСУРСОВ

ГОРБАЧЕВ В.А., ВОЛКМ.А., БАБАЕВ А.П._______

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

Широкое распространение и доступность ПЭВМ сделало ее одними из наиболее используемых инструментов для проведения научных исследований. Сегодня одним из свойств персональных компьютеров стало их включение в многомашинные комплексы, локальные и глобальные сети. В последние два-три года наблюдается тенденция к использованию прикладными и операционными программами вычислительных ресурсов всех компьютеров (процессоров), доступных пользователю.

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

1. Декомпозиция моделей систем

Согласно общей теории систем модель системы можно представить в виде двойки

M = [A, s] ,

где A — непустое множество элементов; S — множество связей между элементами.

Введем понятие частной модели системы M;, которую определим как

M і = [A і, Si], A і c A, S; c S.

Под декомпозицией модели будем понимать такое множество частных моделей M і, і = 1, N , где

M = и M і = и [A і, Si ]

і=1 і=1

(N — число частных моделей).

Введем условия проведения декомпозиции:

1. Множества элементов частных моделей не должны пересекаться:

Aі n A j = 0, і, j = 1, N, і Ф j.

2. Связи между элементами могут принадлежать нескольким частным моделям; в этом случае элементы, объединенные такой связью, должны принадлежать разным частным моделям.

3. Вычислительная стоимость обработки частных моделей должна быть приблизительно одинакова. Под вычислительной стоимостью будем понимать показатель, оценивающий время и ресурсы, требуемые для моделирования частной модели. Если элементы и связи системы однородны или их можно в приближении представить таковыми, то при разбиении модели можно пользоваться следующим принципом: мощность частных моделей M і выбирается приблизительно равной, а количество взаимосвязей между частными моделями должно быть минимально. Число элементов в частной модели можно оценить как

^ . . count

count(Aj) и--^-L

1 N

4. Количество частных моделей N выбирается с учетом доступных вычислительных ресурсов и скорости каналов обмена данными.

5. Условие информативности декомпозиции заключается в объединении в одну частную модель элементов, относящихся к одной подсистеме. В качестве критерия при формировании множества элементов частной модели могут выступать, например, показатели более “сильных” связей. Соблюдение этого принципа также позволяет организовать изучение самой подсистемы.

Следует отметить, что большинство из перечисленных условий на сегодняшний день нельзя реализовать формально, и при построении алгоритмов декомпозиции чаще всего данные условия реализуются в эвристических правилах. На практике, при декомпозиции конкретной модели для конкретных целей пользуются одним (несколькими) критерием эффективности.

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

2. Метод подсхем

Рассмотрим идею метода подсхем [1]. Пусть имеется схема G. Ее моделью является система:

W

РИ, 1998, № 1

35

Здесь х — вектор переменных схемы (в качестве которых выступают узловые потенциалы, токи).

Разобьем схему G на N подсхем gi, g2, ... , gN. Уравнения каждой из них можно записать в виде

’^1(хГ,хШ)=0, Wg2(xГ,XB2)=0,..., 'WgN^rABN^0, (5) где хГ — граничные переменные подсхем, например, потенциалы внешних узлов или напряжения на внешних ветвях подсхемы, образующих с другими подсхемами; xB1 , ... , х BN,- внутренние переменные подсхем.

Уравнение всей схемы можно записать в виде

Wr

Решая выражения подсхем (5) относительно xB1 , ... , хBN, получаем

XB1 = Fg^rX XB2 = Fg2(xг), ... , XBN = FgN(xr) . (7) Эти соотношения отражают связи внутренних и граничных переменных каждой подсхемы. Подставляя их в (5) , получаем уравнение схемы с исключенными внутренними переменными подсхем; их можно назвать равенствами сокращенной схемы:

Wr(xr , Fgi(xr), Fg2(xr) , ... , FgN(xr) )= Wr(xr)=0. (8) Размер этой системы определяется только числом граничных переменных, которое может быть много меньше общего числа переменных хГ , X B1 , ... , X BN . Решая (8), находим хГ. Подставляя хГ в уравнение связи (7), определяем xB1 , ... , х BN.

Таким образом, вместо решения системні уравнений полной схемы размера [xr]+[xB1]+ ... +[xBN], где [х] — размер вектора х, здесь раздельно решаются N+1 системы равенств меньшего размера.

3. Применение декомпозиции при реализации численных методов на ЭВМ

узел, и элемент могут принадлежать одной или нескольким подсистемам; методом сечений ветвей, при котором узел принадлежит одной подсхеме, а элемент — одной или нескольким.

Одновременно с разбиением формируется топологическое множество Dr типа узел-подсхема, контур-подсхема или сечение-подсхема в зависимости от типа переменных хіг, указывающее, какие подсхемы участвуют при суммировании в граничных узлах, сечениях или в граничных контурах.

Уравнение (10) путем исключения внутренних переменных приводится к виду

Аіг хіг = Віг.

При этом размер системы (10) понижается на число внутренних переменных. Одновременно с (11) формируются уравнения связи граничных и внутренних переменных каждой подсхемы

^B = Fgi

B нашем случае равенство (10) линейное, поэтому формирование (11) и (12) выполняется следующим образом:

1) Пронумеруем переменные подсхемы так, чтобы сначала располагались номера внутренних перемен -ных от 1 до n-m, а затем номера граничных переменных от n-m+1 до n, и тогда систему (10) можно представить в виде

A А -^е.е ^-е.д Хе B е

A А д.е д.д Хд ед

2) Исключим из этого уравнения методом Гаусса n-m внутренних переменных. Тогда эта система примет вид

1 я(1) я1,2 • я(1 і ' a1,n-m і я (В <4,n-m+1 . я (1) я1,п XB1 h« hB1

0 1. (2) ! . a2,n-m j я(2) я 2,n-m+1 я(2) я2,п XB2 h(2) hB2

0 0. . 1 ! і я (n -m) . an-m,n-m+1 a(n-m) dn-m,n X XBn-m = u(n-m) hBn-m

0 0 . . 0 1 я(п-m) <*-n-m+1,n-m+1 a(n-m) an-m+1,n Xrn-m+1 u(n-m) ьГп-m+1

0 0. . 0 ! І a(n-m) an,n-m+1 я (n -m) dn,n x Гп (n-m) ьГп

Модель непрерывной системы в общем случае — это система дифференциальных нелинейных уравнений. Процесс моделирования представляет собой многократное решение этой системы, отражающее поведение системы во времени [1]. Применение численных методов, а именно они используются при моделировании на ЭBМ, приводит к тому, что основной вычислительной задачей на каждой итерации обычно является система линейных уравнений

Ах = B.

Рассмотрим применение идей декомпозиции для задачи распараллеливания процесса формирования и решения систем линейных уравнений. Согласно методу подсхем исходная схема разбивается на части

— подсхемы или многополюсники, описываемые уравнениями вида

Аі хі = Bi,

где Аі, Bi — матрица коэффициентов и вектор

свободных членов i-й подсхемы; i = 1, N , хі =

— вектор, включающий граничные хіВ и внутренние xiB переменные i-й подсхемы.

Разбиение на подсхемы можно производить разными способами [1]: методом сечений узлов, при котором узел может принадлежать одной или нескольким подсхемам (т. е. быть либо внутренними, либо граничными), а элемент принадлежит только одной подсхеме; методом контуров, при котором и

где верхние символы — номер шага исключения.

Легко видеть, что подсистема, образованная нижней правой частью матрицы А и векторами хГ и Br, соответствует выражению (11) и является уравнением подсхемы с исключенными внутренними переменными. Подсистема, образованная верхней трапециевидной матрицей и векторами xB и BB, образует уравнение связи граничных и внутренних узлов и соответствует равенству (12). Поскольку верхняя левая подматрица — треугольная с единичными диагональными элементами, то расчет xB при известных хГ выполняется по формулам обратного хода метода гаусса.

Bыражения (11) каждой подсхемы с помощью топологического множества Dr объединяются в общую систему уравнений всей схемы относительно только граничных переменных хГ:

АГ хГ = Br,

36

РИ, 1998, № 1

размер которой равен мощности множества, полученного объединением множеств Хг всех подсхем, поэтому оказывается меньше, чем размер полной системы равенств (9) на величину, равную сумме всех исключенных внутренних переменных.

Процесс формирования системы (13) основан на координатном суммировании матриц Ап и векторов Вп (где i — номер подсхемы) и состоит в том, что заранее выделяются два массива размерами Nr и Nr*Nr, где Nr — общее число граничных узлов в схеме, и в эти массивы на позиции, координаты которых определяются оператором Dr, заносятся составляющие массивов Агі и Вгі.

Схема может быть настолько большой, что при малом числе подсхем оказывается велик размер систем уравнений (11) и приходится увеличивать количество подсхем. Но тогда увеличивается число граничных переменных хг и размер системы (13), который может достигнуть большой величины. В этом случае системе (13) ставится в соответствие некоторая новая схема, состоящая из граничных узлов. В той схеме все внутренние ветви подсхем исходной схемы пересчитаны к граничным узлам, а внутренние узлы, контуры или сечения исключены. По отношению к новой схеме можно применить все преобразования, описанные выше, и получить систему уравнений

А1г х1г = BV

размер которой определяется количеством граничных переменных, оставшихся после исключения части граничных переменных из системы (13).

Далее процесс может быть рекурсивно повторен до тех пор, пока система (14) не окажется допустимых размеров. Таким образом, приходим к идее многоступенчатых подсхем.

Затем решаем систему (14), составленную относительно граничных переменных всей схемы, и с помощью уравнений связи вида (12) находим все внутренние переменные.

4. Алгоритм разбиения схем

Теперь рассмотрим один из методов компоновки частных моделей системы. Задачу разбиения модели системы на подсистемы можно сформулировать как задачу отыскания оптимального разбиения G=|Gi,G2,...,Gn| множества элементов схемы X={xi,x2,.. .,xK} на N частей при заданных ограничениях. Некоторые из возможных правил эффективного разбиения приведены в п.1. В литературе [4] встречаются алгоритмы, ориентированные, как правило, на один из критериев, которые оказываются эффективными для определенного класса задач. В качестве примера рассмотрим параллельный алгоритм разбиения схем [2,3], который позволяет сократить время решения путем предварительного выделения максимальных сильносвязанных подграфов и распараллеливания вычислительного процесса. Идея алгоритма последовательного формирования частей разбиения с минимизацией числа внешних связей заключается в следующем. Сначала распределяются специальные элементы или выбранные в качестве специальных. Затем для каждого элемента xi, принадлежащего множеству всех элементов схемы X, определяется та часть разбиения, при помещении в которую элемент дает наименьшее приращение внешних связей.

Исходной информацией являются:

— матрица цепей T=|tjj|k*c, где ty — номер цепи, связанной с j-м контактом і-го элемента; K — число элементов схемы; c — максимально возможное количество контактов у элементов схемы;

— матрица S=|sy|n*p, где N — число частей разбиения; p — число электрических цепей в схеме; Sij=1, если в і-й части разбиения Gi имеется элемент, инцидентный j-й цепи, и sij=0 — в противном случае.

Алгоритм состоит в следующем. Для каждого xi по матрице T строится вектор S0i=|sij|n*p, где Sy=1, если элемент xi подключен к j-й цепи, и Sij=0 — в противном случае. Возможность назначения i-го элемента в j-ю часть разбиения определяется значением приращения внешних связей dkjj, которое подсчитывается числом единиц в векторе

Q = F х Si х Soi, F = £ .

i=1

Здесь F — вектор, полученный поразрядной дизъюнкцией всех строк матрицы S, кроме j-й, для которой находится ее инверсия. Аналогично подсчитываются dkjj для всех j. Минимальное значение dky свидетельствует о целесообразности назначения элемента x в подсхему Gi. Процесс повторяется, пока все элементы не будут распределены. Параллельный алгоритм разбиения схем содержит два цикла: внешний — перебора и распределения элементов xi и внутренний — анализа возможности помещения элемента xi вj-ю часть разбиения. Внешний цикл можно распараллелить частично путем одновременного анализа группы непосредственно не связанных между собою элементов, что не внесет погрешности в алгоритм.

Процедура выделения максимального подмножества непосредственно не связанных элементов Хн, содержащихся в общем множестве элементов X, в графе, не содержащем изолированные вершины, заключается в следующем.

1. Инвертируем матрицу смежности R=|rj|k*k, где rj=1, если элемент xi не связан с элементом Xj, в противном случае гу=0.

2. По вектор-строке Ri находим множество эле-

ментов C={ci}, i = 1,kc (где kc — количество единиц в векторе-строке Ri), не связанных с xi.

3. Для каждого элемента ci, принадлежащего C, находим множество не связанных с ним элементов

D={Di(Ci)}, i = 1,kc .

4. Пересечение Di и Ri дает искомый результат

(kc ^

X н =

П Di

i=1

R i.

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

1. Выделяется группа элементов, непосредственно не связанных между собой и с элементом xi: XH={Xj},

i = 1, k i .

2. Для каждого xi, принадлежащего Хн, по матрице T строится вектор-столбец матрицы S0=|Sij|p*ki.

3. Вычисляется вектор

F = Е Si.

i=1

4. Формируется матрица Q=|Qij|l*p, где

РИ, 1998, № 1

37

Qi=F x Si.

5. Вычисление приращения внешних связей dkij, вносимого распределением элемента xi в Gj для всех Хі є XH, выполняется одной операцией матричного умножения dK=Q*So, dK=||dkij||l*ki.

6. В результате групповой операции поиска минимального dkjj в каждом столбце матрицы dk определяется целесообразность назначения элемента xi в j-ю часть разбиения.

7. Находится множество нераспределенных элементов X’=X\Xh, и если XV0, пункты 1-7 алгоритма повторяются.

Проведем анализ алгоритмов. Достоинством параллельного алгоритма является снижение на порядок временной сложности по сравнению с базовым вариантом [2]. Аналитически преимущество параллельного алгоритма во времени решения оценим числом операций с векторами: для базового алгоритма — (3+N(N+3))Kv; для параллельного — (K/v(4v+2N+2Nv),

где v — среднее количество элементов Xh.

Таким образом, коэффициент повышения быстродействия параллельного алгоритма

(3 + N( N + 3))Kv N* 2 + 3N + 3

a =--------------- или a = ——-------------

(4v + 2N + 2Nv)K 2N(N + N/v) + 4 '

Так как минимальное значение k=2, а максимальное равно достаточно большому значению N, то нижняя и верхняя оценки

ан

N2 + 3N + 3 3N + 4

ав

N2 + 3N + 3 2 N + 4

Недостатком параллельного метода является увеличение количества используемой памяти. Для базо -вого алгоритма требуется 2kc+Np+3p+N байт оперативной памяти (не считая вспомогательных переменных); для параллельного —

2kc+2Np+Nv+pv+p,

где v — среднее количество элементов XH. Коэффициент увеличения используемой памяти

b =

2 kc + 2Np + Nv + pv + p

2 kc + P(2N + v + N) + Nv

2kc + Np + 3p + N 2 kc + p( N + 3) + N •

Задав минимальным значением v=2, а максимальным — v=K, получим нижнюю и верхнюю оценки

b

н

2 kc + p(2N + 3) + 2N b 2 kc + p(N + 3) + N ’ b

2 kc + p(2 N + K +1) + NK

2 kc + p(N + 3) + N -

Для примера возьмем значения p=100, K=200, N=4, c=3, vmin=2, vmax=50 и вычислим нижние и верхние оценки быстродействия и объема памяти aH=1,9; aB=2,5; bH=1,2; bB=3,8.

Видно, что с увеличением k объем занимаемой памяти растет быстрее, чем быстродействие, в

Ьв Ьн

ав — ан

= 4.3 раза!

Следовательно, возникает противоречие: с одной стороны, для увеличения быстродействия нужно, чтобы количество элементов, непосредственно не связанных между собой, было как можно большим; с другой — выполнение данного условия приводит к резкому увеличению затрат памяти. Самым простым разрешением этого противоречия является наложение ограничений на максимальное значение k, для

приведенного выше примера оно равно 25, тогда

ав 2,5 Ьв 2,5

При выборе ограничений следует руководствоваться имеющимся объемом памяти и требуемым значением быстродействия с учетом имеющихся распределенных сетевых ресурсов и временных затрат на обмен данными между параллельными вычислительными объектами. Недостатком параллельного метода с точки зрения программирования является необходимость на каждом шаге заново распределять память под массивы S0 и dK, так как они меняют свой размер в зависимости от v.

Предлагается процедура, реализующая алгоритм разбиения схем с учетом анализа двух описанных выше алгоритмов, которая имеет следующие особенности: минимальное использование оперативной памяти; требуется 2kc+Np+N байт (не учитывая вспомогательных массивов и переменных); иная организация подсчета dkjj, что позволит упростить алгоритм без внесения погрешности и исключить некоторые операции.

Иной подход подсчета dkjj включает: из i-й строки матрицы T берется список связей i-го элемента; в j-й строке матрицы S для j-й части разбиения выбираются элементы с номерами, соответствующими связям i-го элемента, и суммируются:

dkij = Z S[j, m m]],

m=1

где ci — количество контактов i-го элемента. Аналогично рассчитываются dkjj для всех j. Максимальное значение dkij свидетельствует о целесообразности назначения i-го элемента вj-ю подсхему. “Новое” dkjj показывает, какое количество контактов i-го элемента подключено к уже распределенным цепям в j-й подсхеме. Такое вычисление dkij (17) позволяет исключить векторы F, Si, S0i и уменьшить количество операций с ними.

Таким образом, рассмотрен полный круг вопросов, связанных с возможностью и принципами декомпозиции непрерывных систем, предложен один из возможных алгоритмов разбиения и проведена оценка его эффективности.

Литература: 1. Ильин В.Н. Основы автоматизации схемотехнического проектирования. М.: Энергия, 1979.392с. 2. Морозов К.К., Одинокое В.Г., Курейчик В.М. Автоматизированное проектирование конструкций РЭА. М.: Радио и связь, 1983. 280 с. 3. Волченская Т.В., КнязьковВ.С. Параллельный алгоритм компоновки схем// Программирование. 1991. №1. С. 94-95.4. Мороз Б.И. Декомпозиция сети ЭВМ коллективного пользования сложной структуры с целью применения моделей управления распределением ресурсов/ АСУ и приборы автоматики. 1982. Вып.61. С. 58-61.

Поступила в редколлегию 12.02.98

Горбачев Валерий Александрович, канд. техн. наук, профессор кафедры ЭВМ ХТУРЭ. Научные интересы: теория моделирования. Адрес: 310726, Украина, Харьков, пр. Ленина, 14, тел. 40-93-54.

Волк Максим Александрович, аспирант, младший научный сотрудник кафедры ЭВМ ХТУРЭ. Научные интересы: теория проектирования электронных систем, теория моделирования. Адрес: 310726, Украина, Харьков, пр. Ленина, 14, тел. 40-93-54.

Бабаев Андрей Павлович, аспирант, младший научный сотрудник кафедры ЭВМ ХТУРЭ. Научные интересы: теория систем, теория моделирования. Адрес: 310726, Украина, Харьков, пр. Ленина, 14, тел. 40-93-54.

РИ, 1998, № 1

38