Параллельный метод для расчета надежности сетей с ограничением на диаметр

ПАРАЛЛЕЛЬНЫЙ МЕТОД ДЛЯ РАСЧЕТА НАДЕЖНОСТИ СЕТЕЙ С ОГРАНИЧЕНИЕМ НА ДИАМЕТР

С. Н. Нестеров, Д. А. Мигов*

Новосибирский государственный университет, 630090, Новосибирск, Россия * Институт вычислительной математики и математической геофизики СО РАН,

630090, Новосибирск, Россия

УДК 519.17+519.24

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

Ключевые слова: надежность сети, случайный граф, диаметр графа, параллельные алгоритмы.

We consider the problem of exact calculation of structural reliability for networks with unreliable communication links and perfectly reliable nodes. As reliability index we use the diameter constrained reliability. The problem of computing this characteristic is known to be NP-hard, just like the problem of computing the probability of network connectivity. For solving this problem we propose the parallel methods for supercomputers with distributed memory. These methods are based on the well-known factoring method and modification of factoring method. The analysis of the numerical experiments allowed us to set some important parameters of the algorithms for increasing their scalability.

Key words: network reliability, random graph, graph diameter, parallel algorithm.

Введение. В процессе эксплуатации элементы сетей связи могут подвергаться отказам. Причины отказов могут быть различны, например, поломка, износ, природные явления, результат преднамеренных действий злоумышленника, и другие. Подобные сети обычно моделируются случайным графом G = (V,E) [1], вершины которого соответствуют узлам сети, а ребра — каналам связи. Для каждого элемента графа задано некоторое вещественное число p е [0,1] — вероятность исправной работы элемента, что соответствует надежности соответствующего элемента сети.

Наиболее часто рассматривается случай, когда все узлы в сети абсолютно надежны, в то время как для каждого ребра e е E задана вероятность отказа qe = 1 — pe. Предполагается, что отказы ребер происходят независимо. Сеть считается работоспособной, если она

Работа поддержана РФФИ: гранты № 13-07-00589, 14-07-31069.

связна, т, е, если ее узлы связаны друг с другом посредством исправных ребер. Надежностью сети называют вероятность соответствующего события, т, е, вероятность связности графа. Часто рассматривается выделенное множество узлов сети — терминалов (плюсов), В таком случае сеть полагается работоспособной, если каждая пара терминалов связана посредством исправных ребер. Задача расчета вероятности связности заданного подмножества узлов сети является ХТ'-1рудной [1]. Данный показатель надежности достаточно хорошо изучен, разработано большое количество различных точных и приближенных методов расчета [1-4].

Однако на практике во многих случаях требуется обеспечить не просто существование пути между каждой парой узлов, а существование пути, проходящего по ограниченному числу каналов связи [5-6], Например, если есть ограничение на время передачи данных между двумя узлами — Т, то количество транзитных узлов, участвующих в передаче данных, не должно превышать Т/£, где £ — требуемое время для обработки данных на каждом узле сети. Для таких случаев в [7] был введен другой показатель надежности — вероятность связности сети с ограничением на диаметр, Кк(С, О), Этот показатель надежности есть вероятность того, что любые два узла из заданного множества К соединены в графе С путем длины не более

Как и задача расчета вероятности связности, задача расчета вероятности связности с ограничением на диаметр ХТ'-1 руд на [7], Вопрос о сложности данной задачи в зависимости от значений диаметра и количества полюсов является к настоящему моменту полностью изученным [8], В наших прошлых работах совместно с А. С, Родионовым [9-11] были предложены различные методы структурной редукции и декомпозиции для ускорения расчета надежности сети с ограничением на диаметр,

В настоящей работе представлены и исследованы два параллельных алгоритма для вычисления точного значения надежности заданной сети с ограничением на диаметр. Один алгоритм основывается на методе факторизации [1], а второй на модификации данного метода, предложенной в [7]. Для распараллеливания использована парадигма параллельного программирования „ведущий-ведомый", подобно тому, как это было ранее сделано для разработки параллельного алгоритма расчета надежности сети без ограничения на диаметр [4]. Проведенные численные эксперименты позволили значительно улучшить масштабируемость алгоритмов,

1. Основные определения и обозначения. Будем представлять сеть с ненадежными ребрами с помощью неориентированного случайного графа С = (У,Е), для каждого ребра е которого задана вероятность его присутствия в графе ге. Задано выделенное множество вершин К С V — полюсов, соответствующих узлам сети, для которых необходимо обеспечить возможность устанавливать соединение друг с другом.

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

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

2. Метод факторизации. Расчет RK(G,D) непосредственно по определению приведет к перебору всех реализаций графа, что делает расчет невозможным даже при небольшой размерности. Поэтому для расчета различных показателей надежности используются другие методы, самый распространенный из которых — метод факторизации [1]. Метод заключается в рекурсивном применении формулы полной вероятности при рассмотрении в качестве альтернативных гипотез наличия либо отсутствия очередного разрешающего ребра, В общем случае формула для выбранного ребра e имеет вид

Rk

G/e G e G\e G e

Множества вершин V и терминалов K остаются теми же,

В [7] предложен модифицированный метод ветвления для расчета надежности сети, который работает существенно быстрее, чем вышеописанный классический метод ветвле-

Основная его идея состоит в переходе от графов к спискам путей P. На начальном этапе

D

Это автоматически исключает из рассмотрения все ребра, через которые не проходит ни один такой путь, например, так называемые „прикрепленные деревья" без полюсов. Для каждого оставшегося ребра e формируется список P(e) всех содержащих его путей. При рекурсивных вызовах процедуры в качестве параметров не передаются подграфы, вместо них передается шесть параметров, описывающих состояние соответствующего подграфа с

P

зуемых в нем вспомогательных параметров,

1) npst — количество путей длины не более D между полюсами s и t;

2) linksp — число ребер в пути p е P, не являющихся абсолютно надежными;

3) feasiblep — принимает значение false, если путь p включает абсолютно ненадежное ребро, true — иначе;

4) connectedst — принимает значение true, если вершины s и t соединены абсолютно

D false

connectedPairs ограниченной длины.

Псевдокод алгоритма Cancela и Petingi [8]. 1: function FACTO

2: RContract ^ 0 > случай, отвечающий стягиванию ребра

3: RDelete ^ 0 > случай, отвечающий удалению ребра

4: e ^ случайное ребро : 0 < re < 1

5: for all p = (s,..., t) е ^^e feasiblep = true do > "Стягивание ребра"

6: linksp ^ linksp — 1

7: if connectedst = false i/i linksp = 0 then

8: connectedst ^ true

9: connectedPairs ^ connectedPairs + 1

10: if connectedPairs = fcx(^-1) then

11: RContract ^ 1

12: GoTo

13: end if

14: end if

15: end for

16: RContract ^ FACT0

17: for all p = (s,... ,t) G ^^e feasiblep = true do > "Удаление ребра"

18: feasiblep ^ false

19: npst ^ npst - 1

20: if connectedst = false i/i linksp = 0 then

21: feasiblep ^ false

22: npst ^ npst - 1

npst = 0

24: RDelete ^ 0

25: СоТо

26: end if

27: end if

28: end for

29: RDelete ^ FACT0(P, nrpst, linksp, feasiblep, connected st, connectedPairs) 30: RK(G,D) = re x RContract + (1 — re) x RDelete > "Финальные вычисления"

31: Return RK(G,D) 32: end function

3. Параллельный алгоритм расчета надежности сети с ограничением на диаметр, Основная идея предлагаемых параллельных алгоритмов заключается в следующем, В процессе факторизации при разбиении задачи на две новые подзадачи одна из них может передаваться для решения на свободный процесс, а вторая оставаться на исходном. Если свободных процессов нет, то обе подзадачи остаются на исходном процессе. Например, подзадача „удаления" выбранного ребра остается на текущем процессе, а подзадача „стягивания" этого ребра или отправляется па любой из простаивающих процессов, если такой есть, или остается на этом же процессе. Разница для двух модификаций метода факторизации заключается только в формате передаваемых данных,

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

"e

ляя RK(G/e, D), а на другом процессе выполняется „стягивание" для этого ребра, вычисляя RK(G\e,D). И первый процесс должен будет ждать, пока второй процесс вычислит второе значение и перешлет его, и только после этого вычислит RK(G,D).

По аналогии с параллельным методом для расчета веетерминальной надежности без ограничения на диаметр [4] предлагается отправлять на процесс-помощник подзадачу вместе с вероятность получения этой подзадачи. Вероятность получения реализации подсети — переменная, значение которой меняется в течение процесса. Для исходной сети это 1. Например, в выражении (1) вероятность подзадачи стягпвания — это re, а вероятность

1 - re

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

Дня организации взаимодействия между процессами использована схема „ведущий -ведомый" (рис. 1), в которой выделяется один „контролирующий" процесс, называемый ведущим. Этот процесс ответственен за загрузку остальных и суммирование полученных значений. Ведомый процесс получает задачи от других ведомых процессов по указанию ведущего, выполняет их, возвращает полученные результаты, и снова получает новую задачу. При необходимости ведомый процесс может попросить помощи в виде одного из простаивающих процессов дня распределения работы.

Ведущий процесс:

1) контролирует загруженность остальных процессов;

2) отправляет исходный граф дня вычисления па один из ведомых процессов;

3) при получении запроса о помощи либо отказывает в пей, либо посылает помер свободного процесса;

4) суммирует вычисленные па каждом процессе значения, получая итоговое значение надежности.

Ведомый процесс:

1) в начале инициализируется как простаивающий;

2) при получении задачи процесс выполняет процедуру (1). Одна из подзадач, например, RK(G/e, D), остается для вычислений на этом процессе, после чего происходит запрос к ведущему процессу, от которого приходит ответ либо в виде номера свободного процесса, либо с сообщением отказа (т.е. если все процессы уже заняты). Далее, в зависимости от полученного ответа, вторая подзадача вместе с соответствующей вероятностью либо отправляется па вспомогательный процесс, либо остается па исходном дня дальнейших вычислений;

3) после того, как все вычисления закопчены, отправляет накопленные значения па ведущий процесс и ждет следующей задачи.

Как уже упоминалось, разница дня двух модификаций метода факторизации заключается только в формате передаваемых данных. В модификации метода факторизации |7| работа ведется со списком структур, а пе с конкретным графом. Необходимо оперировать с гораздо большим по размеру количеством информации. Пересылка подзадач от одного процессора к другому осуществляется за намного большее время, чем, в базовом методе факторизации. Но в последовательной реализации базовой метод факторизации значительно медленней, чем модифицированный |7| и дополнительно усиленный в соответствии с |11|, В следующем пункте выясняется, какой метод предпочтительней в параллельной реализации.

Рис. 2. Решетка для метода факторизации

Рис. 3. Решетка для метода С&Р

4. Результаты численных экспериментов. Дня сравнения масштабируемости двух параллельных алгоритмов (метод факторизации и метод С&Р) была выбрана решетка 5x5 с тремя терминалами (рис. 2-3), терминалы выделены цветом). Диаметр полагался равным 4. Значение надежности последовательным методом факторизации было вычислено за 16 мин 9,507 с, количество рекурсий было равным 249 602 055. В то же время второй алгоритм закончи.:: работу всего за 0 мин 0,061 с с 74 рекурсиями. Поэтому дня второго алгоритма были усложнены входные данные с целью сделать время исполнения обоих алгоритмов примерно одинаковым. Были выбраны следующие параметры: количество терминалов равно 5, значение диаметра равно 9. С новыми данными алгоритм С&Р закончи.:: вычисления за 16 мин 35,169 с, количество рекурсий оказалось равным 1154905 688.

На рис. 4 изображен график масштабируемости данных алгоритмов. Можно видеть, что алгоритмы масштабируются примерло одинаково, то есть в обоих случаях ускорение идет лишь до 16 ядер, после чего время работы замедляется. В то же время следует помнить, что вычисления были сделаны для разных входных данных, то есть метод факторизации в действительности работает гораздо медленнее, чем С&Р,

В работе |4| для ускорения параллельного расчета всетерминалыюй надежности без ограничения на диаметр был введен параметр Меадез — минимальное число ребер в графе, необходимое для отправления этого графа на вспомогательный процесс. Например, для графа малой размерности быстрее нос читать надежность на одном процессе, без пересылок. Результаты численных экспериментов показали, что этот параметр существенно влияет на скорость работы алгоритма. После введения параметра Nedges результаты масштабируемости изменились в лучшую сторону. На рис, 5 и 6 можно видеть, что ускорение алгоритмов заметно улучшилось для обоих алгоритмов. Поиск оптимального значения параметра велся методом бинарного поиска. Видно, что итоговое значение лежит

между значениями 15 и 20 (дальнейший поиск параметра бееемыелепен, так как разница времени исполнения для параметров 15 и 20 отличалась .лишь на одну секунду).

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

10з.1

103 102.9

о

,2.8

10

2 н

§ 10».т

с-«

" ю2-6

н со

102.5

ю2-4

102.3

- Метод факторизации Метод С&Р

16

32

64

128

количество ядер Рис. 4. Зависимость времени исполнения от количества ядер

о

н

§ 102

<

с-

5

н со

1 16 32 64 128 256

количество ядер

Рис. 5. Зависимость масштабируемости от параметра Nedges для метода факторизации

1 16 32 64 128 256

КОЛИЧЕСТВО ЯДЕР

Рис. 6. Зависимость масштабируемости от параметра Nedges для метода С&Р

Заключение. Для ХР-трудпой задачи расчета надежности сети с ограничением на диаметр предложены параллельный алгоритм, основанный на методе факторизации, и параллельный алгоритм, основанный на модификации метода факторизации С&Р. Для распараллеливания использована парадигма параллельного программирования „ведущий — ведомый". Численные эксперименты позволили оптимально настроить параметры алгоритмов и значительно улучшить их масштабируемость. Как и в последовательном случае, метод С&Р работает существенно быстрее в параллельной реализации, чем базовый метод факторизации.

Список литературы

1. COLBOL'rx Cil. J. The combinatorics of network reliability. N.Y.: Oxford University Press, 1987.

2. I 111 11 ll.\ 111 lill. Ill Г. Ш., Oci-iliOBA M. А., Лосев А. С. Асимптотика вероятности связности графа с низконадежными ребрами /7 Прикладная дискретная математика. 2013. № 1(19). С. 93 98.

3. Мигов Д. А. Формулы для быстрохх) расчета вероятности связности подмножества вершин в графах небольшой размерности /7 Проблемы информатики. 2010. № 2(6). С. 10 17.

4. mlgov I).. Rodioxov A. Parallel Implementation of the Factoring Method for Network Reliability Calculation /7 Springer Lecture Notes in Computer Science (in [4] 2014, Part 6). 2014. V. 8584. P. 654 664.

5. Paxduraxgax G., Raghavax P., Upfal E. Building Low-Diameter Peer-to-Peer Networks /7 IEEE Journal on Selected Areas in Communications (JSAC). 2003. V. 21(6). P. 995 1002.

6. Мелентьев В. А. Функция структурной отказоустойчивости и d-ограниченная компонента связности графа вычислительной системы // Прикладная дискретная математика. 2008. № 2(2). С.102-106.

7. Cance la H., Р etingi L. Reliability of communication networks with delay constraints: computational complexity and comlete topologies // Int. J. of Mathematics and Mathematical Sciences. 2004. V. 29. P. 1551-1562.

8. Canale E., Cancela H., Robledo F., Rubino G., Sartor P. On Computing the 2-Diameter-Constrained K-Reliabilitv of Networks // International Transactions in Operational Research. 2013. V. 20(1). P. 49-58.

9. Мигов Д. А. Расчет надежности сети с ограничением на диаметр с применением точек сочленения // Автоматика и телемеханика. 2011. № 7. С. 69-74.

10. Мигов Д. А. Расчет надежности двухполюсной сети с ограничением на диаметр с применением сечений // Проблемы информатики. 2011. № 11. С. 4-9.

11. Мигов Д. А., Нестеров С. Н., Родионов А. С. Методы ускорения расчета надежности сетей с ограничением на диаметр // Вестник СибГУТИ. 2014. № 1. С. 49-56.

Нестеров Сергей Николаевич — студент Новосибирского государственного университета,

e-mail: cepera@inbox.ru.

Мигов Денис Александрович — канд. физ.-мат. наук, науч. сотр. лаборатории моделирования динамических процессов в информационных сетях Института вычислительной математики и математической геофизики СО РАН,

e-mail: mdinka@rav.sscc.ru.

Дата поступления — 10.07.2015