Отзыв научного руководителя на выпускную квалификационную работу студента математико-механического факультета Порсева Егора Валерьевича Development of a library for multithreaded and parallel computations based on the model of coroutines and channels Упрощение использования параллельного и конкурентного программирования являет одним из главных направлений развития современных языков программирования, поскольку конкурентные и параллельные вычисления являются основным способом сокращения времени вычислений и уменьшения задержек, однако параллельное программирование считается сложным для разработчика. Работа Порсева Егора Валерьевича посвящена разработке модифицированного подхода к многопоточному и параллельному программированию на основе сопрограмм и каналов в современном языке программирования. Этот подход защищает выбранные пользователем участки программы от ошибок недетерминированности, таких как гонки, потеря событий и зависания, в случаях, когда накладные расходы на обеспечение детерминизма не существенны для производительности. При этом он не ограничивает разработчика в остальных случаях и позволяя легко менять набор ограничений в процессе разработки, что позволяет более гибко находить компромисс между производительностью и защитой от ошибок, таким образом существенно повышая надёжность программ. В ходе работы был выполнен обзор актуальных подходов к написанию многопоточных и параллельных программ, используемых в популярных языках последнего поколения. Предложенное решение расширяет широко распространённый подход сопрограмм и каналов, добавляя в него дополнительную защиту от ошибок. Разработанный подход был реализован в виде библиотеки для языка Java. Реализация была полностью покрыта модульными тестами. На основе анализа типичных примеров параллельных и многопоточных программ на популярных языках программирования был разработан набор примеров использования, также выступающих функциональными тестами. Была проведена экспериментальная оценка производительности по сравнению с низкоуровневыми средствами, предоставляемыми языком Java, не выявившая критических потерь. Исходный текст библиотеки выложен в открытый репозиторий. К работе есть следующие замечания: 1. Не приводятся строгие математические обоснования для гарантий, предоставляемых предлагаемым подходом. Вместо этого для обоснования используются аналогии с существующими моделями с доказанными свойствами. 2. Не рассмотрена интеграция предлагаемого подхода в язык программирования на уровне синтаксиса. Поскольку интеграция на уровне библиотеки является достаточно многословной. Несмотря на указанные замечания, считаю, что работа Порсева Егора Валерьевича является завершённым исследованием, достигает всех поставленных целей и заслуживает оценки “отлично” А. к. ф.-м. н., ст. преп. кафедры информатики математико-механического факультета СПбГУ 04.06.2023 _________________Салищев С. И.