Дизайн GraphBLAS-подобного API с использованием возможностей функциональных языков программирования

  • Кирилл Анатольевич Гарбар ООО “Яндекс.Технологии”, Российская Федерация, 119021, Москва, ул. Льва Толстого, 16
  • Игорь Антонович Ерин ООО «Ядро Центр Программных Разработок», Российская Федерация, 123376, Москва, ул. Рочдельская, 15, стр. 15
  • Артём Александрович Черников Санкт-Петербургский государственный университет, Российская Федерация, 199034, Санкт-Петербург, Университетская наб., 7–9
  • Дмитрий Викторович Панфилёнок Санкт-Петербургский государственный университет, Российская Федерация, 199034, Санкт-Петербург, Университетская наб., 7–9
  • Семён Вячеславович Григорьев Санкт-Петербургский государственный университет, Российская Федерация, 199034, Санкт-Петербург, Университетская наб., 7–9 http://orcid.org/0000-0002-7966-0698
Ключевые слова: анализ графов, разреженная линейная алгебра, GraphBLAS API, GPGPU, параллельное программирование, функциональное программирование, .NET, OpenCL, FSharp

Аннотация

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

Биографии авторов

Кирилл Анатольевич Гарбар, ООО “Яндекс.Технологии”, Российская Федерация, 119021, Москва, ул. Льва Толстого, 16

разработчик бэкенда в ООО «Яндекс.Технологии», kirillgarbar322@gmail.com

Игорь Антонович Ерин, ООО «Ядро Центр Программных Разработок», Российская Федерация, 123376, Москва, ул. Рочдельская, 15, стр. 15

Igor Erin, Junior Software Developer at VADRO Centr Programmnykh Razrabotok LLC, igor.erin.a@gmail.com

Артём Александрович Черников, Санкт-Петербургский государственный университет, Российская Федерация, 199034, Санкт-Петербург, Университетская наб., 7–9

студент СПбГУ, artem_chernikov00@list.ru

Дмитрий Викторович Панфилёнок, Санкт-Петербургский государственный университет, Российская Федерация, 199034, Санкт-Петербург, Университетская наб., 7–9

студент СПбГУ, dmitriy.panfilyonok@gmail.com

Семён Вячеславович Григорьев, Санкт-Петербургский государственный университет, Российская Федерация, 199034, Санкт-Петербург, Университетская наб., 7–9

канд. физ.-мат. наук, доцент кафедры системного программирования СПбГУ, s.v.grigoriev@spbu.ru

Литература

J. Kepner et al., "Mathematical foundations of the graphblas," in 2016 IEEE High Perform. Extreme Comput. Conf. (HPEC), Waltham, MA, USA, 2016, pp. 1-9; doi:10.1109/HPEC.2016.7761646

O. Selvitopi et al., "Distributed many-to-many protein sequence alignment using sparse matrices," in Proc. Int. Conf. High Perform. Comput., Netw., Storage Anal. (SC '20), Atlanta, GA, USA, 2020, pp. 1-14; doi:10.1109/SC41405.2020.000792020

J. Kepner et al., "Enabling massive deep neural networks with the graphblas," in 2017 IEEE High Perform. Extreme Comput. Conf. (HPEC), Waltham, MA, USA, 2017, pp. 1-10; doi:10.1109/HPEC.2017.8091098

T. A. Davis, "Algorithm 1000: Suitesparse: graphblas: Graph algorithms in the language of sparse linear algebra," ACM Trans. Math. Softw., vol. 45, no. 4, pp. 1-25, 2019; doi:10.1145/3322125

A. Buluc and J. R. Gilbert, "The combinatorial blas: Design, implementation, and applications," Int. J. High Perform. Comput. Appl., vol. 25, no. 4, pp. 496-509, 2011; doi:10.1177/1094342011403516

C. Yang, A. Buluc, and J. D. Owens, "Graphblast: A high-performance linear algebra-based graph framework on the gpu," ACM Trans. Math. Softw., vol. 48, no. 1, pp. 1-51, 2022; doi:10.1145/3466795

T. Henriksen et al., "Futhark: Purely functional gpu-programming with nested parallelism and in-place array updates," in Proc. 38th ACM SIGPLAN Conf. Program. Lang. Design Implement. (PLDI 2017), Barcelona, Spain, 2017, pp. 556-571; doi:10.1145/3062341.3062354

T. L. McDonell, M. M. Chakravarty, G. Keller, and B. Lippmeier, "Optimising purely functional gpu programs," SIGPLAN Not., vol. 48, no. 9, pp. 49-60, 2013; doi:10.1145/2544174.2500595

R. Leißa et al., "Anydsl: A partial evaluation framework for programming high-performance libraries," Proc. ACM Program. Lang., vol. 2, no. OOPSLA, 2018; doi:10.1145/3276489

Опубликован
2026-03-31
Как цитировать
Гарбар, К. А., Ерин, И. А., Черников, А. А., Панфилёнок, Д. В., & Григорьев, С. В. (2026). Дизайн GraphBLAS-подобного API с использованием возможностей функциональных языков программирования. Компьютерные инструменты в образовании, (1), 105-114. https://doi.org/10.32603/2071-2340-2026-1-105-114
Выпуск
Раздел
Инженерия программного обеспечения