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

<p>Возможность задавать пользовательские типы и операции над ними, а затем использовать их для параметризации операций линейной алгебры — одна из основных особенностей стандарта GraphBLAS API. Эталонная реализация этого стандарта, <a href="https://github.com/DrTimothyAldenDavis/GraphBLAS">SuiteSparse:GraphBLAS</a>, поддерживает такую возможность. Однако в python-grphbls, который является обёрткой над SuiteSparse:GraphBLAS, такая возможность <a href="https://github.com/python-graphblas/python-graphblas/issues/564#issuecomment-3324403853">поддерживается не полностью</a>, что затрудняет написание лаконичного кода, а иногда делает невозможным решение некоторых задач оптимальным способом. Предлагается устранить этот недостаток и реализовать полноценную поддержку пользовательских типов в python-graphblas.</p>
Требования к студенту
<ul> <li>Отличное знание языка Python: инструментарий разработки, отладки, тестирования, алгоритмическое программирование, особенности системы типов, понимание о JIT, о трансляции в язык С, особенности numba.</li> <li>Понимание основ построения трансляторов: преобразование деревьев разбора, вывод типов, кодогенерация.</li> <li>Хорошее знание языка С: работа с пользовательскими типами данных, инструменты сборки, отладки, тестирования.</li> <li>Хорошее знание основ линейной алгебры: матрицы, вектора, операции над ними, (полу)кольца, моноиды, свойства операций (коммутативность и т.д.). </li> </ul>
Уровень

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


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

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


Консультант

Grigorev Semyon


Источник

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