Поддержка пользовательских типов данных в python-graphblas

Возможность задавать пользовательские типы и операции над ними, а затем использовать их для параметризации операций линейной алгебры — одна из основных особенностей стандарта GraphBLAS API. Эталонная реализация этого стандарта, SuiteSparse:GraphBLAS, поддерживает такую возможность. Однако в python-grphbls, который является обёрткой над SuiteSparse:GraphBLAS, такая возможность поддерживается не полностью, что затрудняет написание лаконичного кода, а иногда делает невозможным решение некоторых задач оптимальным способом. Предлагается устранить этот недостаток и реализовать полноценную поддержку пользовательских типов в python-graphblas.

Требования к студенту
  • Отличное знание языка Python: инструментарий разработки, отладки, тестирования, алгоритмическое программирование, особенности системы типов, понимание о JIT, о трансляции в язык С, особенности numba.
  • Понимание основ построения трансляторов: преобразование деревьев разбора, вывод типов, кодогенерация.
  • Хорошее знание языка С: работа с пользовательскими типами данных, инструменты сборки, отладки, тестирования.
  • Хорошее знание основ линейной алгебры: матрицы, вектора, операции над ними, (полу)кольца, моноиды, свойства операций (коммутативность и т.д.).
Уровень

2 курс, 3 курс, Бакалаврская ВКР


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

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


Консультант

Grigorev Semyon


Источник

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