НИР в компании Parallels

Для магистров первого года имеется возможность проходить НИР в компании Parallels. Заинтересовавшимся обращаться к Никифорову А.Ю. Возможные темы:

  1. Virtual Machine debugging technique (GDB & LLDB). Automated debugging protocol testing
  2. WinDbg + python: автоматизация типичных сценариев. Внедрение механизма в процесс обработки пользовательских креш-дампов.
  3. Portable Virtual Machines. Optimize a VM run over a slow media (SD/MMC, USB2.0 stick, etc.)
  4. Синхронизации записи звука из нескольких источников/мобильных устройств
  5. Утилита подавления шума в звуке, выделение голоса из звуковой дорожки
  6. Объединенный сервер символьной информации для мультиплатформенных приложений и систем

Цель проекта – построить систему хранения и автоматического пополнения символьной информации для сложных проектов, включающих компоненты, работающие на разных платформах (Linux, macOS), с возможностью использования хранимых символов из среды удаленных отладчиков типа WinDbg, LLDB, GDB. Проект включает:

  • Организацию централизованного сетевого хранилища отладочных символов мультиплатформенных проектов;
  • Автоматизацию закачки в хранилище символов новых сборок компонентов мультиплатформенных систем и приложений;
  • Автоматизацию закачки символов внешних продуктов (отладочные символы Windows, ядер Linux, macOS KernelDebugKit);
  • Скриптовую поддержку работы с символьным хранилищем для WinDbg, LLDB, GDB;
  • Автоматическую идентификацию правильных версий символов в зависимости от отлаживаемого контекста в удаленном отладчике.
  1. Web console for VMs

Web-based console for Parallels VM management on Mac/Windows/Linux hosts inside corporate intranet.

  1. Разработка системы сбора и анализа данных о качестве программного продукта и полноте тестового покрытия программного продукта в процессе его разработки и эксплуатации.

Результат представляет собой web сервис, представляющий данные, полученные с использованием технологий bigdata и artificial intelligence/machine learning. Собираемые данные включают сообщения в логах модулей продукта, инфраструктуры, на которой эти модули работают, счётчики производительности и загрузки модулей продукта и инфраструктуры, и т.д.

  • реализация системы сбора, хранения, анализа данных и представления результатов, полученных в процессе разработки и тестирования программного продукта.
  • развитие системы анализа данных, построение списка модулей системы, тестовых сценариев, версий (сборок), степени покрытия различных модулей и сборок тестовыми сценариями, потенциальных проблем и их причин.
  • разработка UI (web интерфейса) для существующей системы анализа результатов тестирования продукта с помощью технологий машинного обучения.
  1. Multicomponent lockless performance counters

Спроектировать и реализовать библиотеку работы с целочисленными счетчиками производительности, размещенных в разделяемой между несколькими контекстами памяти. Использование (инкрементация) счетчиков возможна из произвольных контекстов разных процессов (из пользовательского контекста и контекста ядра ОС macOS, Windows, Linux).

  1. Оценка похожести проблем на основе логов и телеметрии из пользовательских отчетах об ошибках
  2. Определение детальной информации о запущенных Java-процессах

Программы, написаные на java запускаются как правило с помощью одного и того же процесса (например, на Windows это java.exe), что не дает возможности иденцифицировать разные программы просто по пути до исполняемого файла. Надо придумать способ это делать (по командной строке, дереву процессов, как-то еще), а также получать user-friendly название и иконку программы.

  1. Автоматический поиск проблем в python коде (flake8) и автоматическое их исправление

Магистратура, НИР