Abstract:
Поиск в ширину является одним из основных алгоритмов обхода графа и базовым для многих
алгоритмов анализа графов более высокого уровня. Поиск в ширину на графах является задачей с
нерегулярным доступом к памяти и с нерегулярной зависимостью по данным, что сильно усложняет
его распараллеливание на все существующие архитектуры. В статье будет рассмотрена реализация
алгоритма поиска в ширину (основного теста рейтинга Graph500) для обработки больших графов на
различных архитектурах: Intel х86, IBM Power8+, Intel KNL и NVidia GPU. Будет рассмотрены
алгоритмы реализации поиска в ширину, такие как top-down обход, bottom-up обход и гибридный обход,
содержащий в себе как top-down, так и bottom-up обходы. Будут описаны особенности реализации
алгоритма на общей памяти, а также преобразования графа: локальная сортировка вершин графа,
глобальная сортировка вершин графа, перенумерация всех вершин графа, сжатое представление вершин
графа. Данные преобразования и гибридный алгоритм обхода позволяют достичь рекордных показателей
производительности и энергоэффективности на данном алгоритме среди всех одноузловых систем рейтинга
Graph500 и GreenGraph500. The breadth-first search algorithm is one of the basic algorithms for graph traversing and is used in many
other algorithms of high-level graph analysis. BFS is characterized with intensive irregular memory accesses and
a random data dependency, which greatly complicates its parallelization to all existing architectures. The paper
considers the implementation of the BFS algorithm (the core benchmark of the Graph500 rating) for processing
large graphs on different architectures: Intel x86, IBM Power8+, Intel KNL and NVidia GPU. Algorithms for
implementing breadth-first search will be considered, such as top-down traverse, bottom-up traverse, and a hybrid
traverse that includes both top-down and bottom-up traverses. The features of the algorithm implementation on
shared memory will be shown, as well as graph transformations (local sorting of graph vertices, global sorting
of graph vertices, renumbering of all graph vertexes, compressed representation of graph vertices), which allow
achieving the best performance and energy-efficiency in this algorithm among all single-node systems of Graph500
and GreenGraph500 ratings.
Descrizione:
Колганов Александр Сергеевич, младший научный сотрудник, Институт прикладной
математики им. М.В. Келдыша РАН (Москва, Российская Федерация), аспирант,
кафедра cистемного программирования, Московский государственный университет имени
М.В. Ломоносова (Москва, Российская Федерация). A.S. Kolganov
Keldysh Institute of Applied Mathematics
(Miusskaya sq. 4, Moscow, 125047 Russia),
Lomonosov Moscow State Universisty
(GSP-1, Leninskie Gory 1, Moscow, 119991 Russia)
E-mail: alexander.k.s@mail.ru