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 [2020/02/02 23:46] keletc:users:kel:diplomas [2024/10/01 15:23] (current) odoronin
Line 1: Line 1:
 ====== Дипломные работы ====== ====== Дипломные работы ======
 ===== Темы / направления ===== ===== Темы / направления =====
-  - [[.:jre_fuzzy_threads_planning]] +==== Медицина ==== 
-  - Итераторы в lock-free контейнерах (Multi Array): в структуре данных "Feldman's Multi Array" в [[projects:libcds:start|libcds]] добавить возможность работы с ключами переменной длины через список коллизий в узлах. Тип lock-free списка должен задаваться извне (в Traits) - сейчас есть три реализации - MichaelList, LazyList, IterableList +=== 3D Slicer === 
-  - Алгоритмы, требующие реализации и доработки в [[projects:libcds:tasks|libcds]], обычно есть что улучшить и ускорить по сравнению с реализацией из статей +> //Технологии:// Python OpenCV Qt OpenFOAM CMake C++ ..
-  - Доработка алгоритмов [[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]] по существующим ошибкам / запросам +
-  - Реализация и моделирование сетевых протоколов в симуляторе [[https://www.nsnam.org/wiki/Project_Ideas|NS-3]] +
-  - Доработка визуализатора сетевой симулации [[https://www.nsnam.org/wiki/NetAnim|NetAnim]] +
-  - Пересмотр текущих чистых lock-free алгоритмов в сторону Hardware Transactional Memory+
  
-===== Текущие =====+Во взаимодействии с клинической больницей РАН спланирован ряд задач в проекте "[[:projects:otolaryngologist:start]]". Набор задач потребует достаточно разноплановые знания - от разработки плагинов и анализа изображений (как методами вычислительной геометрии, так и ML) до обеспечения необходимого уровня производительности 
 + 
 +  - Поиск и выделение: 
 +    * Поиск и выделение носовой перегородки 
 +    * Полипов, аденоидов и т.п. 
 +    * Решётчатых артерий 
 +  - Определение: 
 +    * Искривления носовой перегородки 
 +    * Узкого места и расчёт площади/объёма дыхательных пазух 
 +    * Утолщения слизистой оболочки 
 +  - Хватает ли дыхания на основе отношения индекса массы тела и площади дыхательного просвета? (показано ли хирургичекое лечение храпа) 
 +  - Расчёт маршрута проведения инфундибулотомии 
 +  - Учёт газодинамических эффектов и моделирование дыхательного процесса 
 + 
 +На текущий момент в рамках 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://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]] в части распределённости и привнесения учёта многопоточности в анализ трасс  
 + 
 +===== Текущие темы =====
 ==== Магистранты ==== ==== Магистранты ====
  
 ==== Бакалавры ==== ==== Бакалавры ====
  
-===== Защищённые =====+===== Защищённые темы ===== 
 ==== Магистры ==== ==== Магистры ====
 +  - Талащенко П. //"Разработка NoSQL-адаптера к СУБД ydb на основе протокола etcd"//, ЛЭТИ 2024
 +  - Самсонов П. //"Система поддержки составления плана операции и диагностики ЛОР-заболеваний"//, ИТМО 2024
 +  - Егорычев А. //"Система поддержки составления плана операции и диагностики ЛОР-заболеваний"//, ИТМО 2024
 +  - Шахов А. //"Разработка стратегии планирования вычислительных потоков с целью проверки линеаризуемости lock-free алгоритмов"//, ЛЭТИ 2021
 +  - Надежин Н. //"Разработка комплекса скоростной видеосъемки с возможностью автосопровождения летящих объектов"//, 2020
   - Ёров С. //"Доработка алгоритмов Google Thread Sanitizer"//, АУ 2018   - Ёров С. //"Доработка алгоритмов Google Thread Sanitizer"//, АУ 2018
   - Доронин О. //[[:etc:users:kel:fuzzy_threads_planning|"Автоматическое fuzzy-планирование потоков с помощью relacy для обнаружения ошибок в многопоточном коде"]]//, АУ 2018   - Доронин О. //[[:etc:users:kel:fuzzy_threads_planning|"Автоматическое fuzzy-планирование потоков с помощью relacy для обнаружения ошибок в многопоточном коде"]]//, АУ 2018
Line 30: Line 97:
  
 ==== Бакалавры ==== ==== Бакалавры ====
 +  - Никитин Д. //"Разработка системы развёртывания программных продуктов в рамках конвейера системы непрерывной интеграции"//, ЛЭТИ 2024
 +  - Швец А. //"Разработка системы управления наземными измерительными средствами"//, ЛЭТИ 2021
 +  - Цикалюк А. //"Разработка инфраструктуры развёртывания программных артефактов в системе непрерывной интеграции"//, СПбГПУ 2021
   - Шохин Е. //"Интерактивная карта университета с отображением расписания"//, ЛЭТИ 2016   - Шохин Е. //"Интерактивная карта университета с отображением расписания"//, ЛЭТИ 2016
   - Королёв Ю. //"Разработка подсистемы визуализации созвездия навигационных космических аппаратов"//, ЛЭТИ 2009 (+ Кафтасьев)   - Королёв Ю. //"Разработка подсистемы визуализации созвездия навигационных космических аппаратов"//, ЛЭТИ 2009 (+ Кафтасьев)
 +
 +==== Специалисты ====
 +  - Лагутчев Н. //"Разработка системы непрерывной интеграции для целевых платформ защищённых ОС"//, РГГМУ 2021
 +  - Шмыгин Е. //"Разработка конвейерной системы поддержки жизненного цикла сборки программных продуктов"//, РГГМУ 2021
 +  - Кузнецов Н. //"Проектирование безопасности оптико-электронной станции"//, РГГМУ 2020
 +
 +===== Архив =====
 +  - Доработка алгоритмов детекции 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]], обычно есть что улучшить и ускорить по сравнению с реализацией из статей
 +  - [[.:jre_fuzzy_threads_planning]]
 +  - Пересмотр текущих чистых lock-free алгоритмов в сторону Hardware Transactional Memory
 +  - Итераторы в lock-free контейнерах (Multi Array): в структуре данных "Feldman's Multi Array" в [[projects:libcds:start|libcds]] добавить возможность работы с ключами переменной длины через список коллизий в узлах. Тип lock-free списка должен задаваться извне (в Traits) - сейчас есть три реализации - MichaelList, LazyList, IterableList
 +  - [[.:hpx]]
 +  - Сравнительный анализ:
 +    * Производительность STM для Java / Haskell / Closure
 +    * Производительность HTM в OpenJDK
 +    * Производительность [[https://www.cs.unc.edu/~porter/pubs/ispass10-final.pdf|HTM]]
 +    * Производительность 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|этой задаче]]
 +  - Решение [[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.1580676405.txt.gz · Last modified: 2020/02/02 23:46 by kel