Лаборатория Data-Intensive Supercomputing

Спецкурс "Параллельная обработка больших графов"

Факультет ВМК, МГУ им. М.В. Ломоносова
Осенний семестр 2017/2018, по четвергам 18:00, aуд. 612
Преподаватель: А.С. Семенов

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

Задание к экзамену/зачету

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

Инфраструктура, включающая генератор RMAT-графа, реализацию наивного алгоритма для проверки правильности решения доступна здесь: plgp_spec_2017.tgz.

Условия. Для реализации допускается любая параллельная архитектура: общая память (SMP), ускоритель (GPU) или распределенная память.

При сдаче задаче необходимо продемонстрировать работающую параллельную программу и ускорение решения задачи при фиксированном объеме данных в зависимости от увеличения числа параллельных процессов. Реализация должна быть масштабируемой по памяти (т.е. не должно требоваться O(N) памяти на каждый дополнительный параллельный поток, где N - число вершин в графе. Также необходимо будет ответить на вопросы по исходному коду. Плагиат карается незачетом!

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

Материалы

  1. Занятие 1. Введение. Примеры задач обработки графов. Big Data и HPC c точки зрения задач обработки графов. (слайды)
  2. Занятие 2. Основные проблемы при суперкомпьютерной обработке графов. Алгоритмы обхода графов: поиск вширь, поиск вглубь. Алгоритмы поиска всех кратчайших путей от заданной вершины: Дейкстры, Беллмана-Форда, Дельта-степпинг. (слайды)
  3. Занятие 3. Задача поиска минимального остовного дерева в графе. Алгоритмы Прима, Крускала, Борувки, GHS. (слайды)
  4. Занятие 4. Задача поиска сообществ в графе: лувенский алгоритм, алгоритм label propagation. Задача расчета betweenness centrality: наивный алгоритм, алгоритм Брандеса. (слайды)
  5. Занятие 5. Различные виды графов: Random Uniform, small-world, scale-free, RMAT, LFR, SSCA2. Форматы представления разреженных матриц: CRS, Coordinate list. Архитектура современного вычислительного узла: NUMA, многоядерность, длинные вектора. (слайды)
  6. Занятие 6. Проблемы и подходы к решению задач обработки больших графов в рамках одного узла. (слайды)
  7. Занятие 7. Архитектура современной вычислительной системы с распределенной памятью. Односторонняя и двусторонняя модели передачи сообщений. Библиотека MPI. Протоколы передачи сообщений Eager и Rendezvous. (слайды)
  8. Занятие 8. Недостатки и преимущества системной буферизации в MPI. Общие рекомендации для эффективной реализации программ с использованием библиотеки MPI. (слайды)
  9. Занятие 9. Программная модель vertex-centric. Программная система Pregel. (слайды)
  10. Занятие 10. Проблемы и подходы к решению задач обработки больших графов в рамках распределенной вычислительной системы. Распределение данных, организация внутриузлового параллелизма, коммуникационные паттерны,сжатие сообщений, балансировка нагрузки. (слайды)

Литература

  1. Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн. Алгоритмы: построение и анализ, 3-е издание. — М.: «Вильямс», 2013. — 1328 с.
  2. D. Reed, J. Dongarra. Exascale Computing and Big Data: The Next Frontier,Communications of the ACM, Vol. 58 No. 7, P. 56-68. PDF.
  3. U. Meyer, P. Sanders. Delta-Stepping: A Parallel Single Source Shortest Path Algorithm. In Proceedings of the 6th Annual European Symposium on Algorithms (ESA-98), Venice, Italy, August, 24 - 26, 1998, 393-404. PDF.
  4. V. Chakaravarthy, F. Checconi, F. Petrini, and Y. Sabharwal. Scalable Single Source Shortest Path Algorithms for Massively Parallel Systems. In Proceedings of the 2014 IEEE 28th International Parallel and Distributed Processing Symposium (IPDPS '14). IEEE Computer Society, Washington, DC, USA, 889-901. PDF.
  5. K. Madduri, D.A. Bader, J.W. Berry, and J.R. Crobak. An Experimental Study of A Parallel Shortest Path Algorithm for Solving Large-Scale Graph Instances,'' Workshop on Algorithm Engineering and Experiments (ALENEX), New Orleans, LA, January 6, 2007. PDF.
  6. V. Vineet, P.Harish, S. Patidar, and P. J. Narayanan. 2009. Fast Minimum Spanning Tree for Large Graphs on the GPU. In Proceedings of the Conference on High Performance Graphics 2009 (HPG '09). PDF.
  7. Gallager R. G., Humblet P. A., Spira P. M. A distributed algorithm for minimum-weight spanning trees // ACM Transations on Programming Languages and Systems. 1983. vol. 77. PDF.
  8. А.В. Мазеев. Параллельный алгоритм поиска минимального остовного дерева в графе на суперкомпьютере с сетью "Ангара" // Суперкомпьютерные дни в России: Труды международной конференции (26-27 сентября 2016 г., г. Москва).– М.: Изд-во МГУ, 2016. – С.926-939. PDF.
  9. Описание лувенского алгоритма.
  10. U.Raghavan, R. Albert, S. Kumara. Near linear time algorithm to detect community structures in large-scale networks. PDF.
  11. U. Brandes. A Faster Algorithm for Betweenness Centrality. Journal of Mathematical Sociology, vol. 25, no. 2, pp. 163–177, 2001. PDF.
  12. A. Lumsdaine, D. Gregor. Challenges in parallel graph processing // Parallel Process. Lett. 17, 5, 2007. PDF.
  13. Головина Е.А., Семенов А.С., Фролов А.С. Исследование производительности задачи поиска вширь в графе на сопроцессорах семейства Intel Xeon Phi // Вычислительные методы и программирование. – 2014. – Т. 15. – С. 49-58. PDF.