Научная статья на тему 'Программа расчета метрических характеристик больших графов'

Программа расчета метрических характеристик больших графов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1162
123
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
C++ PROGRAMMING LANGUAGE / БОЛЬШОЙ ГРАФ / СПИСКИ СМЕЖНЫХ ВЕРШИН / КРАТЧАЙШИЙ ПУТЬ / МЕТРИЧЕСКИЕ ХАРАКТЕРИСТИКИ ГРАФА / ВЫЧИСЛИТЕЛЬНЫЙ КЛАСТЕР / ЯЗЫК ПРОГРАММИРОВАНИЯ C++ / LARGE NETWORK / LISTS OF ADJACENT VERTICES / SHORTEST PATH / METRICAL CHARACTERISTICS OF THE NETWORK / COMPUTER CLUSTER

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Курчанов Андрей Александрович, Юдин Евгений Борисович

Решается задача расчета метрических характеристик больших графов. Разработанный программный модуль реализует последовательный и параллельный алгоритмы Дейкстры. Тестирование модуля проводится на данных реальных сетей с использованием вычислительного кластера ОмГТУ.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Курчанов Андрей Александрович, Юдин Евгений Борисович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The program for calculation of large networks metrical characteristics

The article solves the problem of calculating metrical characteristics of large networks. The program module implements serial and parallel versions of Dijkstra's algorithm. OmSTU computer cluster is used for testing of the developed program module. Test data include information on real networks.

Текст научной работы на тему «Программа расчета метрических характеристик больших графов»

9. Кульбида, В. А. Способы помехоустойчивого кодирования и декодирования для построения систем связи с адаптацией этих способов к состоянию канала / В. А. Кульбида // Техника радиосвязи. Науч.-техн. сб. — Омск : ОНИИП, 2006. — Вып. 11 — С. 40-51.

10. Кульбида, В. А. Математическое моделирование в системе передачи дискретной информации / В. А. Кульбида // Омский научный вестник. — Омск : ОмГТУ, 2010. — № 3 (93). — С. 236— 239.

11. Морелос-Сарагоса, Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение / Р. Морелос-Сарагоса ; пер. с англ. ; под ред. В. Б. Афанасьева. — М. : Техносфера, 2005. — 320 с.

12. Скотт, Э. Исправление многобитовых ошибок при помощи одного контрольного бита на слово / Э. Скотт // Электроника. — 1981. — № 9. — С. 40-47.

13. Шафеева, О. П. Обнаружение и исправление ошибок в вычислительных системах многовекторными кодами : учеб. пособие / О. П. Шафеева. — Омск : ОМПИ, 1991. — 76 с.

14. Кульбида, В. А. Помехоустойчивый код с гибкой структурой и универсальный алгоритм его декодирования /

В. А. Кульбида // Вестник ТГУ. Приложение. — Томск : ТГУ, 2006. — № 17. — С. 310-315.

15. Кульбида, В. А. Универсальный непрерывный векторный код и исследование алгоритмов кодирования и декодирования / В. А. Кульбида // Системы управления и информационные технологии. Научно-технический журнал. — Воронеж : Научная книга, 2009. — Вып. 1.1 (35). Перспективные исследования. — С. 172-177.

16. Исследование корректирующих свойств помехоустойчивых кодов: свидетельство о регистрации электронного ресурса № 17920 / Кульбида В. А. № 50201250231 ; заяв. 20.02.2012; опубл. 22.02.2012. Алгоритмы и программы № 50, 1 с.

КУЛЬБИДА Владимир Александрович, консультант Управления делами Правительства Омской области. Адрес для переписки: [email protected]

Статья поступила в редакцию 08.09.2014 г. © В. А. Кульбида

УДК 004.41 А. А. КУРЧАНОВ

Е. Б. ЮДИН

Омский государственный технический университет

ПРОГРАММА РАСЧЕТА МЕТРИЧЕСКИХ ХАРАКТЕРИСТИК БОЛЬШИХ ГРАФОВ

Решается задача расчета метрических характеристик больших графов. Разработанный программный модуль реализует последовательный и параллельный алгоритмы Дейкстры. Тестирование модуля проводится на данных реальных сетей с использованием вычислительного кластера ОмГТУ.

Ключевые слова: большой граф, списки смежных вершин, кратчайший путь, метрические характеристики графа, вычислительный кластер, язык программирования C++.

Работа выполнена при поддержке грантов РФФИ 14-01-31551 мол-а, РФФИ 12-07-00149-а.

Введение. Графы широко применяются для описания систем сетевой структуры. Графом называют совокупность множества V вершин и множества Е дуг (и/или ребер), соединяющих пары вершин. Большой популярностью графы пользуются при исследованиях коммуникационных сетей, химических и генетических структур.

Довольно часто при решении прикладных задач количество вершин в графе превышает десятки и сотни тысяч. Графы с количеством вершин больше десяти тысяч будем называть большими графами.

Приведем несколько примеров прикладных задач, в которых графы используются для описания изучаемых систем:

— транспортные задачи, в которых вершинами графа являются пункты назначения, а ребрами — дороги, их соединяющие;

— социологические задачи, в которых вершина-

ми графа являются люди в коллективе, а ребрами — отношения между ними.

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

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

Эксцентриситетом вершины называют расстояние до максимально удаленной от нее вершины. Радиусом и диаметром называют минимальный и максимальный из эксцентриситетов вершин, соот-

ветственно. Центр образуют вершины, у которых эксцентриситет равен радиусу. Периферийные вершины имеют эксцентриситет, равный диаметру.

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

Наиболее распространенным способом вначета метрических характеристик графа является решение задачи о кратчайших путях между всеми парами вершин. Большинство алгоритмов не чблдда-ет универсальностью и показывает хорошую скорость решения только для графов с опредклснвым набором свойств. И хотя сложность задачи нахождения кратчайших путей периодически понижается с появлением новых алгоритмов, эта задача нее нщв остается достаточно сложной [1].

Существуют алгоритмы расчета метрических характеристик графов, обладающих особымрктроН-ством и описывающих специальные струдьулы. -Н подобным алгоритмам можно отнести алгоритм поиска диаметра графов, описывающих секл«мовы-го мира» [2] или алгоритм поиска центров и диаметров графов, описывающих структуру органических бензоидных соединений [3]. Для уедлнения расчетов в этих алгоритмах используются особенности рассматриваемых графов и поэтому область их эффективного применения ограничена.

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

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

1. Программы для работы с большими графами. Для работы с большими графами широко распространенно [4] такое программное обеспечение (ПО), как программа PajekXXL (бесплатное ПО), пакет IGRAPH (бесплатное ПО) и система компьютерной алгебры Wolfram Mathematica (платное ПО). Бесплатное ПО выполняет вычисления последовательно и практически не имеет перспективы для существенного уменьшения времени вычисления. Кроме того, функционал бесплатного ПО ограничен и не позволяет вычислить все метрические характе-

ристики графов (например, PajekXXL не вычисляет радиус графа). Платное ПО имеет большие функци-овнльнын лозмджндстн и оДаспедивает подулржку технологии параллельных вычислений, но его цена довольно велика (лицензия Wolfram Mathematica OtonP-rH сооит $77У). Иаходм лз сышеддредислен-ного можно сделать вывод о целесообразности раз-раОотмиусбстводногл ПО.ядарасчкта мдндинрскил характеристик больших графов с применением параллельных вычислений.

2.Хранение графа на основе списка смежных тдушин. Примагам нoличссoоаддo в гкдфе цомтсо-образно использовать для описания графов списки умежеыыв-ншин. Дш ктяедой вершины v. е V в таком списке перечисляются все ее соседи, т.е. вершины, в которые заходят дуги, исходящие из вершины v..

Для представления взвешенного графа используются списки смежных вершин и весов дуг, хранящие приблизительно 2'|E| элементов данных, списки, описывающие невзвешенный граф, содержат приблизительно|Е| элементов.

Объем памяти компьютера, необходимый для хранения графов списками смежных вершин, пред-ставленв табл.1.

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

3. Параллельный алгоритм расчета метрических характеристик графа. Для расчета метрических характеристик графа требуется решить задачу о нахождении кратчайших путей между всеми парами вершин. Для этого необходимо применить алгоритм Дейкстры для каждой вершины графа (|V| раз). Поскольку каждое из |V| применений алгоритма Дейк-стры может быть выполнено независимо от других, для распараллеливания вычислений в разработанном алгоритме выполняются следующие действия:

— копируется граф в виде списков смежных вершин на каждый вычислитель;

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

— каждый вычислитель рассчитывает эксцентриситеты вершин «своего» подмножества и передает рассчитанные значения главному вычислителю;

— главный вычислитель, получив данные от всех вычислителей, определяет радиус графа, диаметр графа, находит центральные вершины и периферийные вершины графа.

Так как отсутствуют процессы синхронизации между вычислителями, и обмен данными осущест-

Таблица 1

Объем памяти для хранения графа в виде списков смежных вершин

Число дут графа Объем памяти компьютера, Мбайт

Для взвешенного графа Для невзвешенного графа

104 0,08 0,04

105 0,76 0,38

106 7,63 3,81

Таблица 2

Характеристики графов реальных сетей

Имя файла графа Число вершин Число дут (ребер) Диаметр трафа Радиус трафа

Сеть пользователей программы PGP [6] 10680 24340 24 12

Сеть автономных систем Oregon 2 [7] 11461 32731 9 5

Сеть автономных систем М. Ньюмана [8] 22963 48436 11 6

Сеть пользователей электронной почты корпорации Enron [9] 36692 367662 13 1

Сеть пользователей программы Gnutella [10] 62586 147892 11 1

Сеть маршрутизаторов Интернет [11] 124651 207214 30 16

Сеть пользователей электронной почты Европейского исследовательского института [12] 265214 420045 14 3

Сеть товаров-комплементов электронного магазина Amazon [13] 262111 1234877 38 19

Таблица 3

Усредненное время расчета метрических характеристик (|У| < 50000)

Имя файла графа Время работы последов. алгоритма, с Время работы параллельного алгоритма, с

2 потока 4 потока 8 потоков 16 потоков 32 потока

Сеть пользователей программы PGP [6] 15,9 8,0 4,1 2,2 1,1 0,5

Сеть автономных систем Oregon 2 [7] 17,2 8,7 4,5 2,3 1,2 0,6

Сеть автономных систем М. Ньюмана [8] 73,6 37,4 19,3 9,9 5,0 2,5

Сеть пользователей электронной почты корпорации Enron [9] 189,3 96,7 50,3 26,7 14,6 7,4

Таблица 4

Усредненное время расчета метрических характеристик (|У| > 50000)

Имя файла графа Время работы последов. алгоритма, мин Время работы параллельного алгоритма, мин

2 потока 4 потока 8 потоков 16 потоков 32 потока

Сеть пользователей программы Gnutella [10] 11,31 5,86 3,15 1,81 0,92 0,46

Сеть маршрутизаторов Интернет [11] 55,61 29,00 14,95 8,13 4,09 2,06

Сеть пользователей электронной почты Европейского исследовательского института [12] 200,25 101,42 55,43 31,71 15,90 8,53

Сеть товаров-комплементов электронного магазина Amazon [13] 427,07 219,44 123,11 77,94 39,13 19,72

о s

Т

W

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

4. Описание вычислительного кластера ОмГТУ. На сегодняшний день в распоряжении ОмГТУ находится вычислительный кластер, который объединяет пять вычислительных узлов с архитектурой CPU. Каждый вычислительный узел включает два 4-ядер-ных процессора Intel Xeon X5472 3 ГГц. Пиковая производительность достигает 1 Тфлопс, а объем оперативной памяти составляет 40 Гбайт. Все узлы кластера объединены в локальную высокоскоростную сеть (1 Гбит/с) [5].

5. Описание использованных программных средств. В качестве языка для программирования модуля был выбран высокоуровневый язык C++. Такой выбор обусловлен необходимостью использовать параллельные алгоритмы, которые могут быть реализованы с помощью программного ин-

терфейса MPI и стандарта OpenMP. Кроме того, библиотека STL, включенная в стандарт языка C++, содержит реализацию контейнеров, предназначенных для хранения и эффективной обработки данных.

6. Результаты тестирования модуля на данных реальных сетей. Тестирование разработанного программного модуля проводилось на графах с количеством вершин более 10 тысяч [6—13] с использованием вычислительного кластера ОмГТУ. Приведем значения полученных метрических характеристик ц исследуемых реальных сетей (табл. 2). о

Под числом потоков (табл. 3, 4, рис. 1) следует Ц понимать: о

— 1 поток соответствует работе 1-го вычисли- Ы тельного узла в однопоточном режиме (последова- х тельный алгоритм расчета); |

— 2, 4, 8 потоков соответствуют работе 1-го вы- | числительного узла в многопоточном режиме (параллельный алгоритм расчета); ЩЦ

CS

о ж о

в

§32

S J-

16

ть пользовател! ть автономных ть автономных ть пользовател! ть пользовател! ть маршрутиза' пользовател ть товаров маг

ей программы систем Oreg( систем М. ей электронно: ей программы торов Интери ей электронно азина Amazor

PGP [6] in 2 [7] юмана [8] й почты [9] Gnutella [10] ет [11] й почты [12] [13]

10

15

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

20

25

30 35

Ускорение

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

— 16 потоков соответствуют работе 2-х вычислительных узлов в многопоточном режиме (параллельный алгоритм расчета);

— 32 потока соответствуют работе 4-х вычислительных узлов в многопоточном режиме (параллельный алгоритм расчета).

Для каждого графа расчет метрических характеристик с фиксацией времени расчета выполнялся 10 раз. Затем значение времени расчета усреднялось.

Графики (рис. 1) показывают, что использование параллельного алгоритма позволяет значительно ускорить работу программного модуля и существенно сократить время вычислений (табл. 3, 4).

Ускорение при использовании параллельного ал-

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

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

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

Ускорение, близкое к идеальному, было получено при работе одного вычислительного узла в многопоточном режиме с числом потоков, равным двум и четырем. Такой результат можно объяснить особенностями архитектуры 4-ядерных процессоров Intel Xeon X5472, использующихся для построения вычислительного кластера ОмГТУ. Кэш второго уровня таких процессоров является общим на каждую пару ядер (4-ядерные процессоры Intel представляют собой два 2-ядерных, размещенных на одном кристалле). Это позволяет при использовании только одного ядра каждого 2-ядерного процессора (2 вычислительных потока) получать кэш в два раза большего размера, чем это было бы в случае отдельного кэша второго уровня на каждое ядро. Увеличение размера кэша дает возможность процессору реже обращаться к оперативной памяти, что в свою очередь уменьшает общее время расчета.

Заключение. На сегодняшний день для решения практических задач анализа и синтеза графовых моделей больших сетей [14] все чаще возникает необходимость расчета метрических характеристик больших графов. Для расчета метрических характеристик графов необходимо рассчитать эксцентриситеты всех вершин графа. Независимое нахождение эксцентриситетов вершин графа обеспечивает высокую масштабируемость реализованного параллельного алгоритма.

Тестирование разработанного программного модуля проводилось с использованием вычислительного кластера ОмГТУ на графах реальных сетей с различным количеством вершин и дуг. По результатам тестирования были построены зависимости времени расчета от числа параллельно выполняемых потоков для каждого графа реальной сети.

Максимальное ускорение работы программного модуля за счет использования параллельного алгоритма было получено при использовании четырех узлов вычислительного кластера, каждый из которых работал в многопоточном режиме (8 потоков). При такой схеме работы ускорение расчета составляет от 21 до 29 раз и зависит от структуры, сложности и размеров графа.

На сегодняшний день самый большой граф, метрические характеристики которого были рассчитаны с помощью разработанного модуля, имеет 262111 вершин и 1234877 дуг, время расчета составило 19,72 минуты.

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

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

Библиографический список

1. Ураков, А. Р. Алгоритмы быстрого поиска для двух задач о метрических характеристиках взвешенных графов / А. Р. Ураков, Т. В. Тимеряев // Управление большими системами. — 2013. — № 42. — С. 153-172.

2. Takes, F. W. Determining the diameter of small world networks / F. W. Takes, W. A. Kosters // Proc. 20th ACM international conference on Information and knowledge management. — New York : ACM. — 2011. — P. 1191-1196.

3. Chepoi, V. Center and Diameter Problems in Plane Triangulations and Quadrangulations / V. Chepoi, F. ET AL Dragan // Proc. 13th annual ACM-SIAM symposium on Discrete algorithms. — Philadelphia : Society for Industrial and Applied Mathematics. — 2002. — P. 346-355.

4. Social network analysis software [Электронный ресурс]. — URL: http://en.wikipedia.org/wiki/Social_network_ analysis_software (дата обращения: 29.04.2013).

5. Кластер ОмГТУ [Электронный ресурс]. — URL: http:// higcis.xirad.ru/cis/index.php/equipment/23-cluster.html (дата обращения: 15.05.2013).

6. Структура сети пользователей программы для безопасного обмена информацией PGP [Электронный ресурс]. — URL: http://deim.urv.cat/~aarenas/data/xarxes/PGP. zip (дата обращения: 15.05.2013).

7. Сеть автономных систем Oregon 2 [Электронный ресурс]. — URL: http://www.cise.ufl.edu/research/sparse/mat/ SNAP/Oregon-2.mat (дата обращения: 15.05.2013).

8. Сеть автономных систем Интернет, воссозданная на основе BGP таблиц [Электронный ресурс]. — URL: http://www-personal.umich.edu/~mejn/netdata/as-22july06.zip (дата обращения: 15.05.2013).

9. Сеть пользователей электронной почты корпорации Enron [Электронный ресурс]. — URL: http://snap.stanford.edu/ data/email-Enron.txt.gz (дата обращения: 15.05.2013).

10. Файлообменная сеть Gnutella, полученная в августе 2002 г. [Электронный ресурс]. — URL http://snap.stanford.edu/ data/p2p-Gnutella04.txt.gz (дата обращения: 15.05.2013).

11. Сеть маршрутизаторов Интернет, 2006 г. [Электронный ресурс]. — URL: http://www.cise.ufl.edu/research/sparse/ mat/Pajek/internet.mat (дата обращения: 15.05.2013).

12. Сеть пользователей электронной почты Европейского исследовательского института [Электронный ресурс]. — URL: https://snap.stanford.edu/data/email-EuAll.txt.gz (дата обращения: 15.05.2013).

13. Сеть товаров-комплементов электронного магазина Amazon [Электронный ресурс]. — URL: https://snap.stanford. edu/data/amazon0302.txt.gz (дата обращения: 15.05.2013).

14. Задорожный, В. Н. Случайные графы с нелинейным правилом предпочтительного связывания / В. Н. Задорожный // Проблемы управления. — 2011. — № 6. — С. 2-11.

КУРЧАНОВ Андрей Александрович, студент-магистрант группы ИПО-513.

Адрес для переписки: [email protected] ЮДИН Евгений Борисович, кандидат технических наук, доцент кафедры «Автоматизированные системы обработки информации и управления». Адрес для переписки: [email protected]

Статья поступила в редакцию 30.06.2014 г. © А. А. Курчанов, Е. Б. Юдин

i Надоели баннеры? Вы всегда можете отключить рекламу.