Наука и Образование. МГТУ им. Н.Э. Баумана. ВсШИС Электрон, журн. 2014. № 11. С. 535-554."
БОГ 10.7463/1114.0741563
Представлена в редакцию: 23.11.2014 Исправлена: 29.11.2014
О МГТУ им. Н.Э. Баумана
УДК 004.051+519.168
Оценка эффективности параллельных алгоритмов операций преобразования графовой модели
Иванова Г. С.1'*, ГОЛОВКОВ А. А.1 ''g5ivanova@jgmaa.com
1МГТУ им. Н.Э. Баумана, Москва, Россия
При решении задач на графах больших размерностей возникает необходимость применения высокопроизводительных вычислительных систем, так как выполнение большого количества операций над графами требует значительного времени. Для увеличения быстродействия используются разные методы, в том числе применение параллельных вычислительных систем. Целью статьи является выявление элементарных операций, из которых состоят операции над графом, построение параллельных алгоритмов операций над графовыми моделями с использованием выявленных элементарных операций, оценка эффективности предложенной реализации. Анализ операций преобразования графа, наиболее часто встречающихся в алгоритмах решения задач, выполнен независимо от особенностей архитектуры конкретных параллельных систем, что позволит в дальнейшем использовать параллельные операции на различных системах параллельной обработки. Полученная оценка «снизу» коэффициентов ускорения для различных операций показала высокую эффективность применения параллельных алгоритмов операций над графами.
Ключевые слова: графы, операции над графами, параллельные алгоритмы, параллельные вычислительные системы, коэффициент ускорения
Введение
В связи с появлением новых задач больших размерностей, методы решения которых базируются на теории графов [7-9], возникает необходимость выявления новых способов обработки графовых моделей [10-12].
Одно из основных направлений при исследовании и разработки систем, работающих с графами, - использование параллельных вычислительных систем [6,13].
Так параллельные вычислительные системы могут успешно применяться при решении NP-полных задач над графами, решение которых требует значительных вычислительных мощностей, так как обработка графов представляет собой преобразование и анализ отдельных структур, составляющих граф, и может быть эффективно реализована в параллельных вычислительных системах.
Наука йОбразо
МГТУ им. Н.Э. Баумана
В связи с этим возникает задача анализа операций над графами с точки зрения их реализации в системе параллельной обработки.
Условные обозначения:
Ор АааЕI (Е , е) = Е.е - операция добавления элемента е во множество Е;
О рА г (А, В) = А .В - операция добавления множества В во множество множеств
;
ОрвеIег еЕI (Е , е) = Е\е - операция удаления элемента е из множества Е ;
ОРие 1еге$ег (А, В) = А\В - операция удаления множества В из множества множеств
;
ОрипI оп$ег(Я,Х,У),гд е 1 = ХиУ - операция объединения множеств X и У с сохранением результата во множестве
1. Основные положения и допущения
С учетом большой размерности решаемых задач будем представлять граф С аналитически, т.е. множествами вершин X, \X\ = п, ребер и, \и\ = т и множествами множеств его образов по отношениям инцидентности Г 1X и Г 2и. Этого достаточно для описания любой графовой модели (ориентированных и неориентированных графов, мультиграфов, гиперграфов и ультраграфов) [2-5].
Преобразование и анализ графов есть выполнение над графами различных операций, результатом которых может являться модифицированный граф, какая-либо характеристика графа, новый граф, полученный из старого и т.д. [3-5].
С учетом представления графа множествами и множествами множеств каждая операция над графом реализуется как некоторая совокупность операций над множествами, описывающими граф, например, операций добавления элементов во множества и/или удаления элементов из них.
Большая часть таких элементарных операций выполняется над разными множествами, следовательно, эти операции могут быть выполнены параллельно, что значительно уменьшит время выполнения операции над графом в целом.
Оценим эффективность использования параллельных алгоритмов выполнения операций над графами исходя из абстрактного описания графа множествами, которые могут быть реализованы в виде любых структур [1,6], удобных для обработки в конкретной параллельной вычислительной системе.
Так же для ограничения уровня анализа и упрощения модели параллельных операций положим, что любая элементарная операция преобразования или просмотра множества является единицей выполнения потока. То есть один поток за определенное время способен выполнить только одну элементарную операцию над одним множеством. При этом потоки, взаимодействующие с одинаковыми множествами, не могут выполняться параллельно, так как зависимы по данным.
Указанные требования накладывают достаточно жесткие ограничения на параллельные реализации операций над графами, снижая их эффективность, так как при
выборе конкретной структуры данных теоретически возможно распараллеливание самих операций над этой структурой. Выбор структуры данных для представления графа в параллельной вычислительной системе, обеспечивающих максимальную степень параллелизма при выполнении операций над графом, - тема отдельного исследования и в настоящей работе затрагиваться не будет.
2. Оценка эффективности выполнения операций над графами
параллельными системами
В [2-5] приводятся основные операции преобразования графов:
добавление вершины; добавление ребра; удаление вершины; удаление ребра;
свертка множества вершин графа; стягивание ребер графа; декомпозиция вершины графа; подразбиение ребра графа;
удаление вершины из образов и прообразов инцидентных ей ребер;
10) удаление ребра из образов и прообразов инцидентных ему вершин;
11) формирование части графа;
12) дополнение части до графа или его куска;
13) объединение графов;
14) пересечение графов;
15) кольцевая сумма графов;
16) композиция графов;
17) произведение графов;
18) суперпозиция графов;
19) соединение графов.
В работе будем рассматривать операции 1 - 10, так как, во-первых, они наиболее часто встречаются в алгоритмах решения задач на графах, во-вторых, эти операции являются базовыми преобразованиями графа, остальные операции во многом состоят из них, в-третьих, операции 1 - 10 могут быть удобно представлены в виде совокупности элементарных операций без использования ветвлений и циклов, в то время как операции 11 - 19 целесообразно описывать в виде алгоритма.
В процессе анализа для каждой операции будем выявлять элементарные операции, строить ее параллельный алгоритм, находить время выполнения последовательного и параллельного алгоритма и коэффициент ускорения.
2.1. Добавление вершины
Исходными данными для операции добавления вершины являются:
1) Хд. - добавляемая вершина;
2) У - множество входящих ребер, которым инцидентна вершина Хд, 0 < | У | < т;
3) - множество исходящих ребер, которые инцидентны вершине < т.
Реализация операции включает:
- добавление вершины во множество вершин графа:
X ■ Хд;
- множество операций добавления вершины в образы инцидентных ей ребер:
{ Г2^х„/ = 1^,р = | У | } ;
- множество операций добавления ребер в образ :
{г^.цэи",] = Тч,ч = \и"\}.
Добавление элемента во множество во всех случаях предполагает, что ранее такой вершины в перечисленных выше множествах не было, поэтому вместо операции объединения элемента и множества следует использовать операцию конкатенации:
О Рл (1)
Указанные выше операции добавления вершины выполняются с различными множествами. Следовательно, их можно выполнять параллельно. Операции добавления ребер выполняются с одним множеством, а потому при принятых ограничениях
распараллеливанию не подлежат.
Для наглядности отдельные элементарные операции добавления элемента или их последовательности, представляющие собой нити, которые могут выполняться независимо от других, запишем в отдельных строках. Тогда параллельная реализация операции добавления вершины может быть описана следующим
образом:
"АййУе^ех
(С,хк,и',и")=>
ОрлййЕ1 (Х>хк)>
(У 2^1 >хк)>
-{ОрАМЕ^Т^щ Э У"),7 = 1,(7,(7 = Учтем также, что множество в описании исходном графа отсутствовало, и, следовательно, прежде чем формировать это множество его необходимо создать. Поэтому вводится элементарная операция добавления нового множества во множество множеств:
(2)
Тогда параллельная реализация операции принимает вид:
РАййУеПех^, Хк, И', И" ) =>
ОрлййЕ1 (Х>хк)> {ОрАааЕ1(?2и[, хк),
=>
ОрАааЕ1(Г2Щ,хк),р = \и'\},
Орлсшзе^гХ.Т^^ОрАМЕ^Т^и) Э У"),у = 1,(7,(7 =
В соответствии с принятым обозначением последовательности операций, указанные в отдельных строках, могут выполняться параллельно.
Рассчитаем коэффициент ускорения при использовании параллельной реализации операции.
При , где - время выполнения операции
О р, п о л уч а е м:
• время выполнения параллельной реализации операции совпадает со временем выполнения самой длинной цепочки:
{(Рлаауепех) = £((1 + \и"\) * 0рАайБ1) = (1 + |{/"|) * £(0рАййЕ1);
• время выполнения последовательной реализации операции:
Фмуепех) = Ф + Ш'\ + |{/"|) * 0рАайЕ1) = (2 + \Ц' \ + |{/"|) * г(ОрАааБ1).
Откуда коэффициент ускорения:
= £(РАййуепех) = (2 + IЦ'\ + \Ц"I) * t(Opлdd£г) = 2 + Iи'\ + \и"\ АМУеПех ^р^^ (1 + | ц„ |) * ^0рАМЕ1) 1 + |{/"| "
Следовательно:
гтах
в лучшем случае при :
в худшем случае при :
гтт
_ 2+т ^АййУеКех ~ Т+т
2.2. Добавление ребра
С точки зрения реализации операция аналогична операции, рассмотренной в п. 2.1. Входными данными являются:
1) ик - добавляемое ребро;
2) X' - множество вершин, которые инцидентны ребру ик, 0 < \X' \ < п;
3) - множество вершин, которым инцидентно ребро Тогда параллельная реализация операции принимает вид:
РАййЕйде{^,ик,Х' ,Х") =>
~0рАааЕ1(.и, ик),
СГЛ ик),
= > -
0рАййЕ1{^1Ц>ик),р =
эГ),] = 1,(7,(7 =
Рассчитаем коэффициент ускорения при использовании параллельной реализации операции.
При :
• время выполнения параллельной операции:
фмиаде) = + \Х"\ * 0рАййЕ1) = (1 + \Х"\) * 1(0рАМЕ1);
• время выполнения последовательной операции:
КРАЧЧБЧде) = Ф + I*' I + 1*"1) * 0рАМБ1) = (2 + |Г | + \Х"\) * «0рАайБ1).
Откуда коэффициент ускорения:
_ КрАМЕаде) _ (2 + \Х'\ + \Х"|)* 1{0РАййЕ1) _2 + \х'\ + \Х"I лааваде ^^ (1 + \Х"\) * «ОрАМЕ1) 1 + \Х»\ "
Следовательно:
• в лучшем случае при | X ' | = п, | X ' ' | = 0: К^^е = 2 + п ;
2+71
• в худшем случае при | X ' | = 0,| X ' ' | = п: Щ«^е = —■
2.3. Удаление вершины из графа
Для операции входными данными является - удаляемая вершина. Реализация операции предполагает:
- удаление вершины из множества вершин графа:
Х\х,;
- удаление образа из отображения :
Г^ХГхХд.;
- множество операций удаления вершины из образов инцидентных ей ребер:
В соответствии с этим вводятся элементарные операции удаления элемента из множества и удаления множества из множества множеств:
О Pd е г е te£ г ( е ) = £\е ; (3)
О Pd е г е tese t (Д В ) = Л \В. (4)
Тогда параллельная реализация операции принимает вид:
OpoeleteEl (.X,Xk),
^DeleteVertexíG, Xk ) —>
OpDeleteSet(TlX' ^lxk)'
{OpoeleteEl (X2 UV xk)>
-ОРйеШеЕ1 (Х2 ит,
Рассчитаем коэффициент ускорения при использовании параллельной реализации операции.
При :
• время выполнения параллельной операции:
РоеШеУеПех) = ОроеШеЕг)'>
• время выполнения последовательной операции:
РоеШеУеПех) = ^((2 + Яг) * 0рОеШеЕ{) = (2 + ш) * Ъ(0рОе1е1еЕ{). Откуда коэффициент ускорения:
„ _ ^(^DeleteVertex) _ (2 + ш) * t(OppeleteEl) _ „
^DeleteVertex ~ Т77, 7 — у-ГЛп Ñ — Z + ГП.
DeleteVertex) l\uPDeleteEl)
Следовательно, коэффициент ускорения и в лучшем, и в худшем случае:
КDeleteVertex = 2+171.
2.4. Удаление ребра из графа
С точки зрения реализации операция аналогична операции, рассмотренной в п. 2.3. Входными данными является - удаляемое ребро.
Тогда параллельная реализация операции принимает вид:
~ОроеШеЕ1(У> ик)>
РоеШеЕйде^.и^) —>
ОрйеШеБе^Г^), {Орое№еЕг(ик)>
Рассчитаем коэффициент ускорения при использовании параллельной реализации операции.
При :
• время выполнения параллельной операции:
^{РоеШеЕйде) = 0роеШеЕ1)'>
• время выполнения последовательной операции:
^{РоеШеЕйде) = ^((2 + п) * 0рВеШет) = (2 + п) * t(0рВеШет). Откуда коэффициент ускорения:
„ _ ^{РоеШеЕйде)
(2 + п) * г{0рОеШеЕ1)
ВеШеЕйде г{Р0е1е1еЕйде) *(Рр0еШеЕ1)
Следовательно, коэффициент ускорения и в лучшем, и в худшем случае:
КоеШеЕйде == 2 + П.
2.5. Свертка множества вершин графа
Для операции входными данными являются Хр , х, - свертываемые вершины. Реализация операции предполагает:
- удаление вершины х, из множества X вершин графа:
XV,;
- объединение образов и :
Хр и ^ Хк;
- множество операций удаления вершины из образов инцидентных ей ребер:
{ Г 2и (\Х ,, I = 1 , т}; - удаление образа из отображения :
Г ! X \ Г ! Хк.
В соответствии с этим вводится элементарная операция объединения множеств:
О Р ип I о пз е г (Т.Л, У) ,гд е Z = XU У. (5)
Тогда реализация параллельной операции принимает вид:
итопУегИсез
(с,хг,хк) =>
0РйеШеЕ1 (.Х>хк)>
OpunionSet(Jlxf> ^1х/> ^1хк)> ОРоеШеЗе^Г 1-Х, ^1хк)> {0Рйе№еЕ1 (Хг УV хк)>
хк)}■
Рассчитаем коэффициент ускорения при использовании параллельной реализации операции.
с) = К\Тхк\ * |Гх
Л
При * ОрлййЕд'-
• время выполнения параллельной операции:
= * \^1хг\) * Ораме^ + 1(0рАМЕ1),ири |Гл| * |Г1х/| > 1
итопУегИсез) — )
ОрАййЕ1) + КОрлаавд. иначе _ [(1 + |Гл| * * г{ОрАайЕ1),при 11^1 * \Т&Г\ > 1
12 * КОрАМЕ1), иначе • время выполнения последовательной операции:
РипюпУегасеБ) = ^ ((1 + ^л! * ¡Г^Х^ + ГП + 1) * ОрАМЕ^ = = (2 + гп + |Г!Х^| * * г{ОрВеШеЕ1).
Откуда коэффициент ускорения:
^(РитопУегисез)
К,
итопУегисеБ
^(РитопУегИсез)
(2 +т + \Yi_Xkl * \ТхХГ\) * г{ОрВеШеЕ1)
(1 + |Г!Х^| * |Г1х/|) * (2 + т + |Г!Х^| * * г{ОрВеШеЕ1)
,при | Гз^лгд-1 * Г1х/- > 1
2 * КОрлййЕд 2 + т + ¡Г^Хд-! * ¡Г^х^!
,иначе
1 + \?1хк\ * \^1хг\ 2 + т + ^Хд-! * |Г1х/-
1 +■
1 + гп
= <
1 + 114**1* М
,ПрИ \TiXkl * > 1
,иначе
-,при \Тхк\ * ¡Г^х^! > 1
/I
т+\Тххк\*\ТххТ\ 1 Н----, иначе
Следовательно:
• в лучшем случае при :
• в худшем случае при :
тах
ипюпУегЫсеБ
= 1 +
1+т
тт
итопУегИсеБ
2 '
= 1. 5.
2.6. Стягивание ребер графа
С точки зрения реализации операция аналогична п. 2.5. Входными данными являются - стягиваемые ребра.
Тогда реализация параллельной операции принимает вид:
~0рое№еЕ1(.и, ик),
0руп1оп5ес(г2м/' Г2И/, Т2ик), 0рОеШе5е1{Т21],
(с,иг,ик)=>
Рассчитаем коэффициент ускорения при использовании параллельной реализации операции.
При t ( О рв е 1е 1ет) = t ( О рв е 1е 1е5е = t ( О рАа аЕ г) и t ( О р ип 10п5е { * ОрлаатУ-
• время выполнения параллельной реализации операции:
) = *(|Г2м*| * \Т2и
Л
итопЕйдеБ
= Ы(\Т2ик\ * \Т2иг\) * 0рАййЕ+ КОрАййЕ1),при \Т2ик\ * \Т2иг\ > 1 ^ £(ОрАааЕ1) + г{ОрАайЕ1), иначе
_ [(1 + * |Г2И/|) * КОрАййЕд,при \Т2ик\ * \Т2иг\ > 1 _
I 2 * КОрАМЕ1), иначе • время выполнения последовательной реализации операции:
КРип10пЕйдез) = * ((1 + |Г2^| * ^и^ + П + 1) * 0рАййЕ=
= (2 + п + \Т2ик\ * |Г2и./|) * КОрВеШеЕ1). Откуда коэффициент ускорения:
„ _ РишопЕйдеБ) _
**итопЕйдеБ ~ 777) Л —
^\"итопЕйдез )
(2 + п + |Г2иЛ| * * г{ОрВеШеЕ1)
= <
(1 + |Г2иЛ| * |Г2Иу|) * КОрАайЕ1) (2 + п + |Г2иЛ| * |Г2и./|) * КОрВеШеЕ1)
, при \Т2ик\ * Г2иЛ > 1
= <
2 * КОрлййЕд 2 + п + |Г2Цй| * |Г2Ц/|
1 + \Т2ик\ * \Т2иг\
2 + п + \Т2ик\
,иначе
, При \Т2ик\ * \Т2иЛ > 1
иначе
1 +■
1 + п
1 + \Т2ик\ * \Т2и
г, при \Т2ик\ * \Т2иЛ > 1
л
1 Н----.иначе
Следовательно:
1+п
• в лучшем случае при I Г 2ик I * | Т2ит \ = 1\ КЦП^пЕйдез = 1 +
• в худшем случае при 1 Г 2ик 1 * \Г 2и Г \ = О, П = 1: К^опЕйдез = 1 ■ 5-
2.7. Декомпозиция вершины графа Для операции входными данными являются:
1) х к - разбиваемая вершина;
2) xr , хt - новые вершины, полученные в результате декомпозиции вершины Хк;
3) Ur - множество входящих ребер, которым инцидентна вершина хг,0 <\Ur | < т;
4) Ur - множество исходящих ребер, которые инцидентны вершине xr,Q <1 Ur | <
< т;
5) U t' - множество входящих ребер, которым инцидентна вершина xt, 0 < | U t | < т;
6) U t'' - множество исходящих ребер, которые инцидентны вершине xt, 0 < | U t | <
< т;
7) Uf - вводимое ребро;
8) Xf - множество входящих вершин, которые инцидентны ребру и f, 0 < | X f | < п;
f" i fFF i
9) X ' - множество исходящих вершин, которым инцидентно ребро и f, 0 < | X ' | <
< п.
Реализация операции предполагает:
- удаление вершины х к из графа G(X, U , Г 1X , Г 2 U) :
PD e i e te Ver tex ( G, х к) ;
- добавление вершины в граф :
PA dd Ver tex ( G, xt, Ut , U t ) ;
- добавление ребра Uf в граф G(X, U , Г1X , Г2U):
PAddEdge(G,Uf,Xf )•
Параллельную реализацию операции над графом представим последовательностью параллельно реализованных операций над графом:
PsplitVertex(G> хк> xr> UГ', Ur", Xt, U1', U1", Up X?', X? ) =>
= > [PDeleteVertexCG> xk)> PAddVertexip > xr> Ur , Ur ), PAddVertexip > xt> Ut , Ut ),
PAddEdge{p>uf>X^ )■ Рассчитаем коэффициент ускорения при использовании параллельной реализации операции.
Времена выполнения параллельной и последовательной операций складывается из времен операций, из которых они состоят соответственно. При t ( О р A d dE ¡) = t ( O p d e l e te E i) :
• время выполнения параллельной операции:
t{PsplitVertex) = tíPoeleteVertex) + t(PAddVertex) + t(PAddVertex) + t(PAddEdge) =
= t(OpDeleteEl) + (1 + \Ur"\) * t(OpAddEl) + (1 + \и'"\) * t(OpAddEl) + (1 + \xf"\) * * t(OpAddEL) = (4 + \Ur"\ + \и<"\ + \X'"\) * t(OpAddEl);
• время выполнения последовательной операции:
t{PsplitVertex) = t(PoeleteVertex) + t(.PAddVertex) + t(PAddVertex) + t{PAddEdge) =
= (2 + m) * t(OpDeleteEl) + (2 + |Ur' | + \Ur"\) * t(OpAddEl) + (2 + |U1' \ + \и<"\) * * t(OpAddEl) + (2 + \X? | + \Xf"\) * t(OpAddEl) =
= (8 + т + |иг' | + \иг"\ + |У' | + \и'"\ + \ХГ' | + \ХГ"\) * г(ОрАМБ1). Откуда коэффициент ускорения:
_ ^{РзрЫУеПех) _ "■БрШУег1ех ~ 777) Л —
tyrsputvef.tex)
_ (8 + т + \иг' | + \иг"\ + К | + \и'"\ + \ХГ' | + \ХГ"\) * _
(4 + \иг"\ + \и<"\ + \хг"\)*г(оРАМЕ1)
_ 4 + ш + |{/г' | + \и*' | + |
Следовательно:
I г' I I /■' I I г' I I г" I I /■" I I г" I
• в лучшем случае при
— п- Ктах —9-1- Зт+П.
— О: К цп 1 о пЕ йд еэ — с ' 4 ;
I г' I I /■' I I г' I I г" I I /■" I I г" I
• в худшем случае при
ггшп . 4+т
= и • К ■ = 14-
' : К * 1ПП РН /1АС 1 "I"
ЦпюпЕйдеэ ^ 4+2т+п-
2.8. Подразбиение ребра графа
С точки зрения реализации операция аналогична п. 2.7. Для данной операции входными данными являются:
1) ик - разбиваемое ребро;
2) иг , и с - новые ребра;
3) Хг' - множество вершин, которые инцидентны ребру иг , О < \Хг \ < п;
4) - множество вершин, которым инцидентно ребро
5) - множество вершин, которые инцидентны ребру
6) Хс' ' - множество вершин, которым инцидентно ребро ис, О < \ Хс \ < п;
7) ху - вводимая вершина;
8) и у - множество входящих ребер, которым инцидентна вершина Ху , О < \ и у \ <
< т;
9) и у - множество исходящих ребер, которые инцидентны вершине Ху , О < \ и у \ <
< т;
Параллельную реализацию операции над графом представим последовательностью параллельно реализованных операций над графом:
РзрШЕйде^,ик,иг,ХГ',ХГ"^¡.Х1'.Х1",Ху,иУ',11^ ) => = > [РоеШеЕйде(^,ик),РА(1(1Е(1де^С,иг,Хг ,ХГ ), РАййЕйде{р > Щ> > )>
РАййУеПех(,^, Ху, 1]У ,ИУ ).
Рассчитаем коэффициент ускорения при использовании параллельной реализации операции.
При :
• время выполнения параллельной операции:
^{РзрШЕйде) = РпеШеЕйде) + £(РлййЕйде) + £(РлййЕйде) + =
К0РвеШеЕ1) + (1 + |;г"|) * г(0рАМЕ1) + (1 + * г(0рАМЕ1) + (1 + \и'"\) *
* ^оРАМЕ1) = (4 + |;г"| + + К'|) * КОр АййЕ1) >
• время выполнения последовательной операции:
РзрШЕйде) — ^{РоеШеЕйде) + РлййЕйде) + ^РлайЕйде) + РлййУеКех) ~
= (2 + п) * г(ОрВеШеЕ1) + (2 + | + рГ"|) * + (2 + | + *
* КОрАйаБ1) + (2 + | + |1//"|) * 1(ОрАМЕ1) =
= (8 + п+\Хг' | + рГ"| + | + + К | + Откуда коэффициент ускорения:
„ _ РзрЫЕйде) _
Л5рШЕйде ~ 77^ 7 -
1\.г$р№Ес1де )
_ (8 + п + | + + | + + К | + К'|) * _
(4+\Хг"\ + \Х<"\ + \ХГ"\)*^ОрАааЕ1)
_ 4 + п + | + \Х*' | + \и*" |
Следовательно:
• в лучшем случае при \ Хг ' | = \ X с ' \ = п, | и? ' \ = т и \ Хг'' \ = \ X1'' \ = \ и?'' \ =
— П- 1/тах — 9 Л- Зп+т. = и: Л Бр 11 ¡Е йд е = ^ 4 ;
• в худшем случае при \ Хг' \ = \ X1' \ = \ и?' \ = 0 и | Хг ' ' | = | X 1'' \ = п, \ и?'' \ =
— ГУ1- ит1п — Л л- 4+П
— 111: Л СпЦгРИпе — -I- " '
БР11 ¡Ейд е 4+2п+т
2.9. Удаление вершины из образов и прообразов инцидентных ей ребер
Для операции входными данными являются:
1) хк - удаляемая из образов и прообразов вершина;
2) и' - множество входящих ребер, которым инцидентна вершина Хк, 0 < \ и' \ < т;
3) и'' - множество исходящих ребер, которые инцидентны вершине Хк, 0 < \ и'' \ <
< т.
Реализация операции предполагает:
- удаление ребер и ' из образа Г ххк:
г 1хк\и';
- множество операций удаления вершины из образов инцидентных ей ребер:
{ Г 2и АХкЛ = 1,т}.
Параллельная операция содержит уже введенную элементарную операцию удаления элемента из множества (2).
Тогда реализация параллельной операции принимает вид:
Рое1е1еУег1ехРготЕс1дез((',Хк,и ,1] ) — >
= >
{ОроеШеЕ^Л.иОЛ = 1 ,р,р = |{/'|}, {0Рйе№еЕ1 (Г 2^1 >хк)>
0рОеМеЕ1(Г2иц,Хк),Ц = |{/"|}.
Рассчитаем коэффициент ускорения при использовании параллельной реализации операции:
• время выполнения параллельной операции:
г(р ч _ [Щи'\ * 0рОеШеЕ1), при\и'\ > 1 _
ОеШеУеПехРготЕйдез) ~ \г(0рОеШеЕ1), Иначе
= (\и'\*1(0рОеШеЕ1),при\и'\ >1 Ь(0рОеШеЕ1), иначе
• время выполнения последовательной операции:
РоеШеУеПехРготЕйдез) = I + * ОРоеШеЕг) = I + * ОроеШеЕг)-
Откуда коэффициент ускорения:
„ _ ^(^РпеХе^уеКехРготЕйдез) _
"■Ое1е1еУег1ехРготЕйдез ~ 777) Л —
^\"ое1е1еУег1ехРготЕйдез )
+ и|„.|>1 ((т + 1и,ъ № \ * {(ОрПеШеЕ1) I-—-,при \и'\ > 1
-—---, иначе {\и'\ + иначе
1\иРвеШеЕ1)
Следовательно:
• в лучшем случае при : ;
• в худшем случае при \ и' \ — т,\ и'' \ — О: Щ СеУеПехРготЕЧд ез — 1.
2.10. Удаление ребра из образов и прообразов инцидентных ему вершин
С точки зрения реализации операция аналогична операции, описанной в п. 2.9. Входными данными являются:
1) ик - удаляемая из образов и прообразов вершина;
2) - множество вершин, которые инцидентны ребру
3) - множество вершин, которым инцидентно ребро Тогда реализация параллельной операции принимает вид:
= <
PDeleteEdgeFromVerticesiß,llk,X ,Х ) —>
= >
{OVDeleteEl^lUk,X[),i = 1,р,р = \Х'\}, {OpDeleteEl(?iXi, Uk),
OPDeleteElijl
Рассчитаем коэффициент ускорения при использовании параллельной реализации операции:
• время выполнения параллельной операции:
t(p ч _ (t(\X'\ * OpDeleteEl), при \Х' | > 1 _
Rf.DeleteEdgiiFromVertices) ~ {t(OpDeleteEl), Иначе
= (\X'\*t(OpDeleteEi),npH \Х'\>1 b(OpDeleteEl), иначе
• время выполнения последовательной операции:
t{PDeleteEdgeFromVertices) = + * OpDeieteEi) = + |Х"|) * t{OpDeieteEi)
Откуда коэффициент ускорения:
„ _ PDeleteEdgeFromVertices) _
"■DeleteEdgeFromVertices ~ /•_ \ —
ty^DeleteEdgeFromVertices )
1Л * t(OpDeleteEl) J-—-,при > 1
(1Л + РП) * t(Oppeiete£i) i^iiUi '
-—---, иначе iJX'l + иначе
tyUPDeleteEl)
Следовательно:
• в лучшем случае при I X' | = 1, | X ' ' | = п\ K^teEd3eFromVertices = l + n;
• в худшем случае при 1X'1 = п 1X''1 = 0: K^feteEdgeFromVertices = 1
Заключение
В результате анализа было выявлено множество элементарных операций, представленные выражениями (1) - (5), описаны параллельные реализации операций и выполнена в соответствии с принятыми допущениями оценка «снизу» коэффициента ускорения основных операций над графами при применении параллельных алгоритмов. Результаты анализа сведены в таблицу 1.
Таблица 1. Результаты анализа операций
Хар-ки Операции\^ Вхождение элементарной операции Оценка ускорения
ОрАййЕ1 ОрАайБеЬ ОРое1еЬеЕ1 ОРоеЬеЬеБеЬ ОРишопЗеЬ уппах
1) Добавление вершины + + 2 + т 1 + т 2+т
2) Добавление ребра + + 2+п 1+71 2+п
3) Удаление вершины + + 2+т 2+т
4) Удаление ребра + + 2 + п 2+п
5) Свертка вершин + + + 1.5 1+771 1+ 2
6) Стягивание ребер + + + 1.5 1 + 71 1+ 2
7) Декомпозиция вершин + + + + 4 + 771 -^- 4 + 2771 + 71 Зтп + п 2 +-л- 4
8) Подразбиение ребер + + + + 4 + 71 1 + —^- 4 + 271 + 771 Зтг + тп 2 +-л- 4
9) Удаление вершины из образов и прообразов + 1 1 + т
10) Удаление ребра из образов и прообразов + 1 1 +п
Среди рассмотренных операций минимальное значение коэффициента ускорения равно единице для операций удаления вершины и ребра из образов и прообразов. Максимальный коэффициент ускорения больше либо равен единице и прямо пропорционален размерностям графа. Так, например, для операции декомпозиции вершин для графа с количеством вершин и количеством ребер максимальное
значение коэффициента ускорения Ктах — 2 .57 5 * 1О 5, минимальное - Кт1П — 1.О 8 3 . Приведенные оценки коэффициента ускорения показывают высокую эффективность применения параллельных алгоритмов представленных операций.
Перспективными направлениями дальнейших исследований в области ускорения обработки графовой модели является анализ операций преобразования, таких как пересечение, объединение, композиция графов и т.д., и операций анализа характеристик графа, а также исследования в области построения структур данных, обеспечивающих
максимальную степень распараллеливания обработки, что позволит увеличить эффективность использования параллельных вычислительных систем для обработки графов.
Список литературы
1. Овчинников ВА., Иванова Г.С., Ничушкина Т.Н. Выбор структур данных для представления графов при решении комбинаторно-оптимизационных задач // Вестник MF^ им. Н.Э. Баумана. Сер. Приборостроение. 2GG1. № 2 (43). C. 39-51.
2. Иванова Г.С. Mетодология и средства разработки алгоритмов решения задач анализа и синтеза структур программного обеспечения и устройств вычислительной техники: дис. ... докт. техн. наук. M., 2GG7. 416 с.
3. Овчинников ВА. Операции над ультра и гиперграфами для реализации процедур анализа и синтеза структур сложных систем // Наука и образование. MГТУ им. Н.Э. Баумана. Электрон. журн. 2GG9. № 1G. Режим доступа: http://technomag.bmstu.ru/doc/132769.html (дата обращения 2G.1G.2G14).
4. Овчинников ВА. Операции над ультра и гиперграфами для реализации процедур анализа и синтеза структур сложных систем (часть 2) // Наука и образование. MГТУ им. Н.Э. Баумана. Электрон. журн. 2GG9. № 11. Режим доступа: http://technomag.bmstu.ru/doc/133223.html (дата обращения 2G.1G.2G14).
5. Овчинников ВА. Операции над ультра и гиперграфами для реализации процедур анализа и синтеза структур сложных систем (часть 3) // Наука и образование. MГТУ им. Н.Э. Баумана. Электрон. журн. 2GG9. № 12. Режим доступа: http://technomag.bmstu.ru/doc/134335.html (дата обращения 2G.1G.2014).
6. Головков A.A. Представление графовых моделей в системах параллельной обработки // Mолодежный научно-технический вестник. MГТУ им. Н.Э. Баумана. Электрон. журн. 2G14. № 7. Режим доступа: http://sntbul.bmstu.ru/doc/727773.html (дата обращения 2G.1G.2G14).
7. Чернышев С.В. Mодели, методы и алгоритмы эффективного решения задачи маршрутизации транспорта на графах больших размерностей: дис. . канд. техн. наук. M., 2G11. 116 с.
В. Leskovec J., Huttenlocher D., Kleinberg J. Predicting Positive and Negative Links in Online Social Networks // Proceedings of the 19th International Conference on World Wide Web (WWW'1G). ACM, 2G1G. P. 641 -650. DOI: 10.1145/1772690.1772756
9. Bullmore E., Sporns O. Complex brain networks: graph theoretical analysis of structural and functional systems // Nature Reviews Neuroscience. 2009. Vol. 10, no. 3. P. 186-198. DOI: 10.1038/nrn2575.
10. deLorimier M. GRAph Parallel Actor Language — A Programming Language for Parallel Graph Algorithms. PhD Thesis. California Institute of Technology, Pasadena, California,
2013. 151 p. Available at:
http://thesis.library.caltech.edU/7188/2/delorimier Michael 2013.pdf, accessed 20.10.2014.
11. Xin R.S., Crankshaw D., Crankshaw D., Dave A., Gonzalez J.E., Franklin M.J., Stoica I. GraphX: Unifying Data-Parallel and Graph-Parallel Analytics. UC Berkeley AMPLab,
2014. 5 p. Available at:
http://www.researchgate.net/publication/260147249_GraphX_Unifying_Data-Parallel and Graph-Parallel Analytics, accessed 20.10.2014.
12. Harish Pawan, Narayanan P.J. Accelerating Large Graph Algorithms on the GPU Using CUDA // In: High Performance Computing -Proceedings of the 14th international conference on High performance computing (HiPC'07) / S. Aluru, et al. (eds.). Springer Berlin Heidelberg, 2007. P. 197-208. (Ser. Lecture Notes in Computer Science; vol. 4873). DOI: 10.1007/978-3-540-77220-0 21
13. Merrill D., Garland M., Grimshaw A. Scalable GPU Graph Traversal // Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming (PPoPP'12). ACM, 2012. P. 117-128. DOI: 10.1145/2145816.2145832
Science and Education of the Bauman MSTU, 2014, no. 11, pp. 535-554.
DOI: 10.7463/1114.0741563
Received: Revised:
23.11.2014 29.11.2014
Science ^Education
of the Bauman MSTU
ISSN 1994-0448 © Bauman Moscow State Technical Unversity
Evaluating Efficiency of Parallel Algorithms of Transformation Operations with Graph Model
G.S. Ivanova1'*, A.A. Golovkov1
asivano va @ amail.com :Bauman Moscow State Technical University, Moscow, Russia
Keywords: graphs, operations with graphs, parallel algorithms, parallel computing, speedup
The usage of graphs in the analysis and design of complex large-scale system structures, which require a significant computing capacity, has led to the need to seek for the new methods both of graph models representation and of graph operations implementation. To reduce the execution time of algorithms the parallel computing systems are appropriate to use. In this case, to achieve the maximum acceleration graph processing is implemented in hardware and software parts of the system.
In the article, analysis of graph model operations was performed in the context of their implementation in a parallel computing system based on the abstract description of the graph by the sets that allows the utilizing of various parallel processing systems, regardless of their architecture features. The most common in the algorithms graph transformation operations were considered.
As a result of analysis a set of elementary operations on graph structures, which constitute graph operations, was revealed, and graph operations parallel algorithms were realized. Efficiency evaluation of parallel algorithms, presented by speedup for each operation, showed a high degree of graph processing acceleration, compared with sequential operations algorithms.
The proposed realization can be used to solve time-consuming large-scale tasks on parallel computing systems. At the same time, in a particular parallel processing system it is also possible to parallelize elementary operations thereby greatly reducing the execution time of operation in general.
Further research is focused on describing and complementing current implementation with complex parallel graph transformation operations such as intersection, union, composition of graphs, etc., as well as analysis operations of various graph characteristics. That will expand the set of elementary operations and will provide an opportunity to evaluate more accurately the efficiency of parallel computing systems for processing graph models.
References
1. Ovchinnikov V.A., Ivanova G.S., Nichushkina T.N. Selection of Data Structures for Graph Representation while Solving Combinatorial and Optimizational Problems. Vestnik MGTU. Ser. Priborostroenie = Herald of the Bauman MSTU. Ser. Instrument Engineering, 2001, no. 2, pp. 39-51. (in Russian).
2. Ivanova G.S. Metodologiya i sredstva razrabotki algoritmov resheniya zadach analiza i sinteza struktur programmnogo obespecheniya i ustroystv vychislitel'noy tekhniki. Dokt. diss. [Methodology and tools for development algorithms for solving problems of analysis and synthesis of structures of software and computing devices. Dr. dis.]. Moscow, 2007. 416 p. (in Russian).
3. Ovchinnikov V.A. Operations over ultra- and hypercolumns for realisation of procedures of the analysis and synthesis of structures of difficult systems. Nauka i obrazovanie MGTU im. N.E. Baumana = Science and Education of the Bauman MSTU, 2009, no. 10. Available at: http://technomag.bmstu.ru/doc/132769.html , accessed 20.10.2014. (in Russian).
4. Ovchinnikov V.A. Operations over ultra- and hypercolumns for realisation of procedures of the analysis and synthesis of structures of difficult systems (Part 2). Nauka i obrazovanie MGTU im. N.E. Baumana = Science and Education of the Bauman MSTU, 2009, no. 11. Available at: http://technomag.bmstu.ru/doc/133223.html , accessed 20.10.2014. (in Russian).
5. Ovchinnikov V.A. Operations over ultra- and hypercolumns for realisation of procedures of the analysis and synthesis of structures of difficult systems (Part 3). Nauka i obrazovanie MGTU im. N.E. Baumana = Science and Education of the Bauman MSTU, 2009, no. 12. Available at: http://technomag.bmstu.ru/doc/134335.html , accessed 20.10.2014. (in Russian).
6. Golovkov A.A. Representation of graph models in parallel processing systems. Molodezhnyi nauchno-tekhnicheskii vestnik MGTU im. N.E. Baumana = Youth Science and Technology Herald of the Bauman MSTU, 2014, no. 7. Available at: http://sntbul.bmstu.ru/doc/727773.html , accessed 20.10.2014. (in Russian).
7. Chernyshev S.V. Modeli, metody i algoritmy effektivnogo resheniya zadachi marshrutizatsii transporta na grafakh bol'shikh razmernostey. Kand. dis. [Models, methods and algorithms for efficient solving the vehicle routing problem on large-scale graphs. Cand. dis.]. Moscow, 2011. 116 p. (in Russian).
8. Leskovec J., Huttenlocher D., Kleinberg J. Predicting Positive and Negative Links in Online Social Networks. Proceedings of the 19th International Conference on World Wide Web (WWW'10). ACM, 2010, pp. 641-650. DOI: 10.1145/1772690.1772756
9. Bullmore E., Sporns O. Complex brain networks: graph theoretical analysis of structural and functional systems. Nature Reviews Neuroscience, 2009, vol. 10, no. 3, pp. 186-198. DOI: 10.1038/nrn2575.
10. deLorimier M. GRAph Parallel Actor Language — A Programming Language for Parallel Graph Algorithms. PhD Thesis. California Institute of Technology, Pasadena, California,
2013. 151 p. Available at:
http://thesis.library.caltech.edU/7188/2/delorimier Michael 2013.pdf, accessed 20.10.2014.
11. Xin R.S., Crankshaw D., Crankshaw D., Dave A., Gonzalez J.E., Franklin M.J., Stoica I. GraphX: Unifying Data-Parallel and Graph-Parallel Analytics. UC Berkeley AMPLab,
2014. 5 p. Available at:
http://www.researchgate.net/publication/260147249 GraphX Unifying Data-Parallel_and_Graph-Parallel_Analytics, accessed 20.10.2014.
12. Harish Pawan, Narayanan P.J. Accelerating Large Graph Algorithms on the GPU Using CUDA. In: Aluru S., et al., eds. High Performance Computing -Proceedings of the 14th international conference on High performance computing (HiPC'07). Springer Berlin Heidelberg, 2007, pp. 197-208. (Ser. Lecture Notes in Computer Science; vol. 4873). DOI: 10.1007/978-3-540-77220-0 21
13. Merrill D., Garland M., Grimshaw A. Scalable GPU Graph Traversal. Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming (PPoPP'12). ACM, 2012, pp. 117-128. DOI: 10.1145/2145816.2145832