Abstract

Solution of the finding a minimum spanning tree problem is common in various areas of research: recognition of different objects, computer vision, analysis and construction of networks (eg, telephone, electrical, computer, travel, etc.), chemistry and biology, and many others. Processing large graphs is a quite time-consuming task for the central processor (CPU), and in high demand at the present moment. The usage of Graphics processing units (GPUs) as a mean to solve general-purpose problems grows every day, because GPUs have more computing power than CPUs. This article describes the methods of compression and conversion of graphs in standard formats to increase the efficiency of their processing. The search algorithm of minimum spanning trees has been used for researching the proposed approaches. The possibility of a hybrid implementation of this algorithm has been investigated. The highest results were obtained on the large R-MAT and SSCA2 graphs.

Highlights

  • ВведениеВ данной статье рассматривается задача построения минимального остовного дерева (MST – minimum spanning tree) для неориентированного взвешенного графа.

  • Остовное дерево – такое дерево, которое является максимальным по включению ребер подграфом, не имеющее циклов, и в котором сумма весов ребер – минимальна.

  • Наименьшая вычислительная сложность последовательного алгоритма MST была получена автором данной статьи [1] и равна O(E\alpha (E, V )), где E – количество ребер графа, V – количество вершин, \alpha – функция Аккермана [2].

Read more

Summary

Введение

В данной статье рассматривается задача построения минимального остовного дерева (MST – minimum spanning tree) для неориентированного взвешенного графа. Остовное дерево – такое дерево, которое является максимальным по включению ребер подграфом, не имеющее циклов, и в котором сумма весов ребер – минимальна. Наименьшая вычислительная сложность последовательного алгоритма MST была получена автором данной статьи [1] и равна O(E\alpha (E, V )), где E – количество ребер графа, V – количество вершин, \alpha – функция Аккермана [2]. Также существуют некоторые параллельные реализации данного алгоритма: со сложностью O(log(V )) и временной сложностью O(V log(V )), на симметричном мультипроцессоре со сложностью O((V + E)/p), где p – количество ядер в процессоре, на графическом процессоре [3,4,5]. В разделе 5 дано описание параллельной реализации алгоритма Борувки на графическом процессоре. Разделы 6 и 7 описывают принципы построения гибридной реализации алгоритма и результаты полученной производительности

Описание формата представления графов
Тестируемые графы
Преобразование входных данных
Локальная сортировка списка вершин
Перенумерация всех вершин графа
Отображение весов графа в целые числа
Сжатие информации о вершинах
Общее описание алгоритма и этапы его реализации
Удаление циклов
Объединение деревьев
10. Изначально все
Результаты тестирования и обзор существующих решений
Заключение
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call