Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:users:kel:diplomas

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
etc:users:kel:diplomas [2022/11/20 12:38] keletc:users:kel:diplomas [2024/10/01 15:23] (current) odoronin
Line 1: Line 1:
 ====== Дипломные работы ====== ====== Дипломные работы ======
 ===== Темы / направления ===== ===== Темы / направления =====
 +==== Медицина ====
 +=== 3D Slicer ===
 +> //Технологии:// Python / OpenCV / Qt / OpenFOAM / CMake / C++ ...
 +> //Пригодность:// бакалавр / магистр
  
-  - Доработка [[https://gitlab.com/nsnam/netanim|визуализатора]] сетевой симулации [[https://www.nsnam.org/wiki/NetAnim|NetAnim]] по [[https://groups.google.com/g/ns-3-users/c/7ncstz8MIvM|пожеланиям разработчиков]] //(C++/Qt, возможно в ходе исследования может быть доработано иное средство)//: +Во взаимодействии с клинической больницей РАН спланирован ряд задач в проекте "[[:projects:otolaryngologist:start]]"Набор задач потребует достаточно разноплановые знания - от разработки плагинов и анализа изображений (как методами вычислительной геометрии, так и ML) до обеспечения необходимого уровня производительности 
-    * Отображение загруженности сетевых очередейбуферов и т.п. + 
-    * Отображение узлов на карте при известном географическом положении +  - Поиск и выделение: 
-    Анимация объёма передаваемых данных +    * Поиск и выделение носовой перегородки 
-    * Возможность анимации в реальном времени с управлением через python-консоль +    * Полипов, аденоидов и т.п. 
-  - Решение [[https://gitlab.com/nsnam/ns-3-dev/-/issues|задач]] по расширению функциональности моделирования сетевых протоколов в симуляторе [[https://www.nsnam.org/wiki/Project_Ideas|NS-3]] //(С++)// +    * Решётчатых артерий 
-  Сравнительный анализ+  Определение: 
-    * RCU примитивы по отношению к RWLock для различных структур данных (тут придётся немного пару структур может на rcu перевестино это не сложно) //(C++)//+    * Искривления носовой перегородки 
 +    * Узкого места и расчёт площади/объёма дыхательных пазух 
 +    * Утолщения слизистой оболочки 
 +  - Хватает ли дыхания на основе отношения индекса массы тела и площади дыхательного просвета? (показано ли хирургичекое лечение храпа) 
 +  - Расчёт маршрута проведения инфундибулотомии 
 +  - Учёт газодинамических эффектов и моделирование дыхательного процесса 
 + 
 +На текущий момент в рамках 2 дипломных работ апробированы некоторые методы выделения аномалий и моделирования дыхания. Требуется доисследование с доведением до практического применения + решение остальных исследовательско-практических задач 
 + 
 +==== Параллельное программирование / High performance computing ==== 
 +=== Contention-aware synchronization objects === 
 +> //Технологии:// C++ / C / Linux / eBPF / ... 
 +> //Пригодность:// бакалавр / магистр 
 + 
 +Исследования и доработка примитивов синхронизации glibc/ядра ОС для переключения стратегий синхронизации исходя из анализа текущего профиля исполнения приложения и загруженности ОС (contention level). Конечная цель - PR с адаптивной реализацией базовых примитивов в тесном взаимодействии с планировщиком ОС  
 + 
 +  [[https://gitlab.com/gitlab-com/gl-infra/scalability/-/issues/2301|Описание проблемы на примере Postgres]] 
 +  * [[https://inria.hal.science/hal-04266815v1/file/BPF_Hybrid_Locks_Internship_report.pdf|Базовая идея определения contention level]] 
 + 
 +=== YDB === 
 +> //Технологии:// C++ / YDB / etcd / CMake / ... 
 +> //Пригодность:// бакалавр / магистр / НИР 
 + 
 +Yandex в качестве дипломных и практических работ поставляет [[https://ydb.tech/ru/students|ряд задач]] по [[https://ydb.tech/ru|YDB]]. Команда [[https://github.com/dorooleg|Олега Доронина]] (ведущий практик по || программированию) из Yandex поддерживает работу с дипломником и обеспечивает экспертизу в указанной области 
 + 
 +  * Разработка новой функциональности и улучшений в SDK на языках: [[https://github.com/ydb-platform/ydb-go-sdk/issues?q=is%3Aopen+is%3Aissue+label%3Astudent-projects|Go]] [[https://github.com/ydb-platform/ydb-java-sdk/issues?q=is%3Aopen+is%3Aissue+label%3Astudent-projects|Java]] [[https://github.com/ydb-platform/ydb-python-sdk/issues|Python]] [[https://github.com/ydb-platform/ydb/issues?q=is%3Aopen+is%3Aissue+label%3Aarea%2Fcli|C++]] 
 +  [[https://github.com/ydb-platform/ydb/wiki/Student-Projects#implementation-apache-nifi-ydb-sink|Разработка NoSQL-адаптера к СУБД ydb на основе протокола etcd: необходимо реализовать протокол etcd на основе YDB (активно используется GRPC), сохранив производительность и иные заданные параметры системы]] 
 +  * [[https://github.com/ydb-platform/ydb/issues?q=is%3Aopen+is%3Aissue+label%3Aarea%2Fcli|Интеграция R7 office и YDB]] 
 +  * [[https://github.com/ydb-platform/ydb/issues?q=is%3Aopen+is%3Aissue+label%3Aarea%2Fcli|Поддержка новых федеративных источников на Go (как PostgreSQL, MySQL, MS и т.д.)]] 
 +  * **Кеширование прочитанных данных из S3.** В YDB федеративных запросах поддерживается чтение из внешнего источника [[https://en.wikipedia.org/wiki/Amazon_S3|S3]]. Чтение данных из такого источника может быть медленным, а также данные в нем могут храниться в неструктурированном виде json,csv,xml,raw и даже в сжатом представлении. Предлагается в качестве НИР разработать кеширование на диске прочитанных данных в уже подготовленном и разжатом виде для усорения и минимизации накладных расходов при повторном чтении таких данных. 
 +  * **Автоскейлинг потоковых запросов.** Внутри сервиса [[https://yandex.cloud/ru/services/query|Yandex Query]] поддерживаются потоковые запросы, обработка в которых является бесконечной. Источниками в таких запросах являются бесконечные очереди сообщений. Для обеспечения отказоустойчивости и гарантий доставки данных используются так называемые [[https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/fault-tolerance/checkpointing/|чекпоинты]]. Но при этом в процессе работы таких запросов может увеличиться объем поступаемых данных и в этом случае нужно иметь механизмы для оценки и масштабирования запросов (в том числе и состояний которые сохраняются при прохождении чекпонитов
 +  * **Планировщик для запуска запросов в YQ.** Некоторые системы поддерживаются запуск запросов по расписписания (аля [[https://en.wikipedia.org/wiki/Cron|cron]]). Примером такой системы является [[https://docs.snowflake.com/en/user-guide/tasks-intro|snowflake]]. В работе предлагается провести исследование существующих систем которые предлагают похожие решение. На основе этого анализа предложить варианты решения для Yandex Query и разработать прототип для предложенного решения. 
 +  * **Продвинутый планировщик который учитывает локальный плейсинг с учетом доступных ресурсов для потоковых запросов.** Текущая реализация алгоритма планирования либо умеет явно заселять запрос на один хост или же заселять с учетом доступной памяти. Такие стратегии не всегда эффективны с точки зрения использования ресурсов. Предлагается учитывать струтктуру графов чтобы минимизировать число перессылок и учитывать другие потребляемые ресурсы при планировании CPU/Mem/Net 
 + 
 +==== Сети ==== 
 +=== NetAnim === 
 +> //Технологии:// Qt / C++ / CMake 
 +> //Пригодность:// бакалавр 
 + 
 +Доработка [[https://gitlab.com/nsnam/netanim|визуализатора]] сетевой симулации [[https://www.nsnam.org/wiki/NetAnim|NetAnim]]: 
 +  * Отображение загруженности сетевых очередей, буферов и т.п. 
 +  * Отображение узлов на карте при известном географическом положении 
 +  * Анимация объёма передаваемых данных 
 +  * Возможность анимации в реальном времени с управлением через python-консоль 
 +  * Отображение направленности антенн 
 + 
 +Средство развивается мало с 2017 года, но применяется в связке с NS-3. Хорошая практика работы со стеком технологий со средним порогом вхождения
  
 ==== На уровне идей (конференции...) ==== ==== На уровне идей (конференции...) ====
  
   - Оптимизация выдедения памяти в [[https://github.com/jemalloc/jemalloc|jemalloc]] и освобождения при делании сего из разных потоков //(С/C++)//   - Оптимизация выдедения памяти в [[https://github.com/jemalloc/jemalloc|jemalloc]] и освобождения при делании сего из разных потоков //(С/C++)//
 +  - Продолжение [[https://wiki.openjdk.org/display/tsan/Main|проекта Thread Sanitizer (применение Google TSAN через LLVM) для OpenJDK]]:
 +    * Изучение проблем приостановки работ в 2020 году
 +    * Доведение до готовности к слиянию в основную ветку
 +  - Доработка [[https://github.com/google/sanitizers/issues?page=2&q=is%3Aissue+is%3Aopen+tsan&utf8=%E2%9C%93|Google Thread Sanitizer]], в части:
 +    * Уменьшение числа false/positive при поиске data/race
 +    * [[https://github.com/google/sanitizers/issues/1415|Поддержка явных барьеров памяти]]
 +    * [[https://ceur-ws.org/Vol-2344/paper9.pdf|Добавление fuzzing потоков]] (сейчас есть только на данных)
 +  - Fuzzing:
 +    * Участие в разработке [[https://github.com/google/centipede|centipede]] в части распределённости и привнесения учёта многопоточности в анализ трасс 
  
 ===== Текущие темы ===== ===== Текущие темы =====
Line 21: Line 80:
  
 ===== Защищённые темы =====  ===== Защищённые темы ===== 
-==== Специалисты ==== 
-  - Лагутчев Н. //"Разработка системы непрерывной интеграции для целевых платформ защищённых ОС"//, РГГМУ 2021 
-  - Шмыгин Е. //"Разработка конвейерной системы поддержки жизненного цикла сборки программных продуктов"//, РГГМУ 2021 
-  - Кузнецов Н. //"Проектирование безопасности оптико-электронной станции"//, РГГМУ 2020 
- 
 ==== Магистры ==== ==== Магистры ====
 +  - Талащенко П. //"Разработка NoSQL-адаптера к СУБД ydb на основе протокола etcd"//, ЛЭТИ 2024
 +  - Самсонов П. //"Система поддержки составления плана операции и диагностики ЛОР-заболеваний"//, ИТМО 2024
 +  - Егорычев А. //"Система поддержки составления плана операции и диагностики ЛОР-заболеваний"//, ИТМО 2024
   - Шахов А. //"Разработка стратегии планирования вычислительных потоков с целью проверки линеаризуемости lock-free алгоритмов"//, ЛЭТИ 2021   - Шахов А. //"Разработка стратегии планирования вычислительных потоков с целью проверки линеаризуемости lock-free алгоритмов"//, ЛЭТИ 2021
   - Надежин Н. //"Разработка комплекса скоростной видеосъемки с возможностью автосопровождения летящих объектов"//, 2020   - Надежин Н. //"Разработка комплекса скоростной видеосъемки с возможностью автосопровождения летящих объектов"//, 2020
Line 40: Line 97:
  
 ==== Бакалавры ==== ==== Бакалавры ====
 +  - Никитин Д. //"Разработка системы развёртывания программных продуктов в рамках конвейера системы непрерывной интеграции"//, ЛЭТИ 2024
   - Швец А. //"Разработка системы управления наземными измерительными средствами"//, ЛЭТИ 2021   - Швец А. //"Разработка системы управления наземными измерительными средствами"//, ЛЭТИ 2021
   - Цикалюк А. //"Разработка инфраструктуры развёртывания программных артефактов в системе непрерывной интеграции"//, СПбГПУ 2021   - Цикалюк А. //"Разработка инфраструктуры развёртывания программных артефактов в системе непрерывной интеграции"//, СПбГПУ 2021
   - Шохин Е. //"Интерактивная карта университета с отображением расписания"//, ЛЭТИ 2016   - Шохин Е. //"Интерактивная карта университета с отображением расписания"//, ЛЭТИ 2016
   - Королёв Ю. //"Разработка подсистемы визуализации созвездия навигационных космических аппаратов"//, ЛЭТИ 2009 (+ Кафтасьев)   - Королёв Ю. //"Разработка подсистемы визуализации созвездия навигационных космических аппаратов"//, ЛЭТИ 2009 (+ Кафтасьев)
 +
 +==== Специалисты ====
 +  - Лагутчев Н. //"Разработка системы непрерывной интеграции для целевых платформ защищённых ОС"//, РГГМУ 2021
 +  - Шмыгин Е. //"Разработка конвейерной системы поддержки жизненного цикла сборки программных продуктов"//, РГГМУ 2021
 +  - Кузнецов Н. //"Проектирование безопасности оптико-электронной станции"//, РГГМУ 2020
  
 ===== Архив ===== ===== Архив =====
-  - Доработка алгоритмов [[https://github.com/google/sanitizers/issues?page=2&q=is%3Aissue+is%3Aopen+tsan&utf8=%E2%9C%93|Google Thread Sanitizer]], в частности: 
-    * В области уборки некорректных срабатываний в lock-free 
-    * В целом исправление работы с fine-grained-lock алгоритмами 
   - Доработка алгоритмов детекции Data race в valgrind [[http://www.valgrind.org/docs/manual/hg-manual.html#hg-manual.todolist|helgrind]] и [[http://www.valgrind.org/docs/manual/drd-manual.html|drd]] по существующим ошибкам / запросам   - Доработка алгоритмов детекции Data race в valgrind [[http://www.valgrind.org/docs/manual/hg-manual.html#hg-manual.todolist|helgrind]] и [[http://www.valgrind.org/docs/manual/drd-manual.html|drd]] по существующим ошибкам / запросам
   - Алгоритмы, требующие реализации и доработки в [[projects:libcds:tasks|libcds]], обычно есть что улучшить и ускорить по сравнению с реализацией из статей   - Алгоритмы, требующие реализации и доработки в [[projects:libcds:tasks|libcds]], обычно есть что улучшить и ускорить по сравнению с реализацией из статей
Line 61: Line 121:
     * Производительность scalable аллокаторов //(C++)//     * Производительность scalable аллокаторов //(C++)//
   - //[В проработке]// Доработка применения HTM в OpenJDK ([[https://hosking.github.io/links/Chapman+2016OOPSLA.pdf|вводная статья]] и [[https://ts.data61.csiro.au/publications/nicta_full_text/9513.pdf|от того же автора]], небольшой [[https://jug.ru/talks/meetups/transactional-memory-and-beyond/|вводный доклад]]по TM в принципе). Сама реализация была сделана в 1.8 по [[https://bugs.openjdk.java.net/browse/JDK-8031320|этой задаче]]   - //[В проработке]// Доработка применения HTM в OpenJDK ([[https://hosking.github.io/links/Chapman+2016OOPSLA.pdf|вводная статья]] и [[https://ts.data61.csiro.au/publications/nicta_full_text/9513.pdf|от того же автора]], небольшой [[https://jug.ru/talks/meetups/transactional-memory-and-beyond/|вводный доклад]]по TM в принципе). Сама реализация была сделана в 1.8 по [[https://bugs.openjdk.java.net/browse/JDK-8031320|этой задаче]]
 +  - Решение [[https://gitlab.com/nsnam/ns-3-dev/-/issues|задач]] по расширению функциональности моделирования сетевых протоколов в симуляторе [[https://www.nsnam.org/wiki/Project_Ideas|NS-3]] //(С++)//
 +  - Сравнительный анализ:
 +    * RCU примитивы по отношению к RWLock для различных структур данных (тут придётся немного пару структур может на rcu перевести, но это не сложно) //(C++)//
etc/users/kel/diplomas.1668937100.txt.gz · Last modified: 2022/11/20 12:38 by kel