Высокоуровневая библиотека абстрактной разреженной линейной алгебры для высокопроизводительного анализа графов

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

В рамках проектов GraphBLAS-sharp и Brahma.FSharp ведутся исследования, призванные найти путь решения проблем стандарта, путём использования высокоуровневых языков программирования. В частности, Кирилл Гарбар в своей работе "Библиотека операций разреженной линейной алгебры с использованием Brahma.FSharp" показал, что в рамках указанных проектов можно добиться разумной производительности конечных алгоритмов (анализа графов), но существует ряд проблем, которые необходимо решить. В частности, необходим глубокий рефакторинг Brahma.FSharp для предоставления различных уровней доступа к графическому ускорителю. Вместе с этим, необходима оптимизация, а иногда и новая реализация алгоритмов разреженной линейной алгебры. Результатом работы должна стать полноценная библиотека разреженной линейной алгебры, демонстрирующая конкурентоспособную производительность как на отдельных операциях, так и на алгоритмах анализа графов.

Требования к студенту
  • Отличное знание языка программирования F#.
  • Отличное знание основ разработки под GPGPU, в частности, в рамках OpenCL.
  • Отличное знание основ линейной алгебры: матрицы, вектора, операции над ними, полукольца, моноиды.
  • Базовые знания теории графов и алгоритмов анализа графов: матрицы смежности, обходы графов, алгоритмы поиска путей.
Уровень

Бакалаврская ВКР , Магистерская ВКР


Руководитель

Григорьев Семен Вячеславович


Консультант

Grigorev Semyon


Источник

Кафедра системного программирования СПбГУ