Специализация на кафедрах параллельных вычислений НГУ и параллельных вычислительных технологий НГТУ: бакалавриат, магистратура

Общая информация

Кафедры параллельных вычислений (ПВ) ФИТ НГУ  и параллельных вычислительных технологий ПВТ (НГТУ) предоставляют студентам уникальную возможность повысить свою квалификацию в области супервычислений:

  • Теория параллельных вычислений
  • Языки и системы параллельного программирования
  • Параллельные вычислительные технологии
  • Методы и средства параллельного решения задач большого размера
  • Распределенные, грид и облачные вычисления
Список изучаемых дисциплин (курсы магистратуры НГУ по направлению "Высокопроизводительные вычислительные системы", студенты НГТУ осваивают материалы курсов в ходе проектной работы):
 
Базовые курсы
  • Эффективное программирование специализированных вычислителей
  • Проектирование параллельных программ
  • Функциональное программирование
  • Синтез параллельных алгоритмов и программ
  • Технология фрагментированного программирования
  • Организация вычислений на кластерах и грид
  • Методы и технологии решения задач на кластерах и грид
Дисциплины по выбору
  • Использование средств параллельного программирования пакета Матлаб
  • Программирование на графических ускорителях
  • Проектирование мелкозернистых алгоритмов и структур
  • Практика параллельной реализации численных алгоритмов в области моделирования процессов течения многофазных сред
  • Решение прикладных задач с использованием пакета Матлаб
  • Параллельная фотореалистичная графика
  • Системные алгоритмы конструирования и выполнения фрагментированных программ
  • Верификация и анализ программ
  • Параллельные численные библиотеки для высокопроизводительных вычислений
  • Тестирование мультикомпьютеров
  • Практика решения задач в распределённых вычислительных системах
  • Методы и средства программирования численных алгоритмов на ПЛИС
  • Научный семинар
 
Параллельные вычислительные технологии так быстро меняются, что студенты, изучающие только технологии сегодняшнего дня, выходят из университета неготовыми к самостоятельной профессиональной жизни. Потому наряду с современными технологиями мы учим фундаментальным основам параллельного программирования, учим программировать так, как это будут делать через 10-20 лет.
 
В настоящее время на кафедре ведутся несколько научных проектов. Есть проекты, поддержанные Программой фундаментальных исследований РАН, РФФИ (Российский фонд фундаментальных исследований), Интеграционные проекты СО РАН.
 

Научные проекты

I. Система фрагментированного программирования

!!! Смотри подробное описание проекта по ссылке 

Тематика бакалаврских выпускных работ и  магистерских диссертаций

 

Разработка и реализация алгоритмов исполнения фрагментированных программ на мультикомпьютерах.

 
Аннотация:

Параллельное программирование задач научного моделирования на мультикомпьютерах (параллельных вычислителях с распределённой памятью) является сложной задачей. Важную роль играют системы автоматизации конструирования параллельных программ, так как они могут взять на себя большое количество трудоёмкой и сложной работы, упростив тем самым работу параллельного программиста. Разработка системных алгоритмов для таких систем представляет собой научную проблему, не имеющую общего удовлетворительного решения, и требующая проработки для различных частных случаев. Технология фрагментированного программирования, разрабатываемая в ИВМиМГ СО РАН, предназначена для автоматизации конструирования параллельных программ численного моделирования. Магистерская диссертация посвящена разработке системных алгоритмов для исполнительной среды (runtime system), осуществляющих исполнение фрагментированных программ, используемых в данной технологии. Работа подразумевает знакомство с технологией фрагментированного программирования и со спецификой параллельной реализации задач численного моделирования. Разработанные алгоритмы будут включены в экспериментальную среду исполнения LuNA, разрабатываемую в институте, в дополнение или на замену существующим алгоритмам системы. Практическая значимость ожидаемого результата состоит в улучшении качества (по времени выполнения, расходу памяти, нагрузке на сеть и т.п.) исполнения прикладных фрагментированных программ заданного класса.

 
II. Проект HPC Community Cloud (HPC2C)

Цель проекта HPC (High Performance Computing) Community Cloud – создание программного инструментария для обеспечения автоматического доступа программных комплексов к высокопроизводительным вычислительным системам (ВВС), накопления и повторного использования программ для решения прикладных задач на ВВС, предоставления пользователям авторизованного совместного доступа к накопленным ресурсам, повышения уровня интерфейсов взаимодействия пользователей с ВВС, обеспечения доступа к учебным и справочным материалам в области суперкомпьютерных технологий и параллельного программирования. HPC2C предоставляет программным системам программных интерфейс (application programming interface, API), а пользователям – веб-интерфейс для работы с удаленными ВВС. 

Архитектура системы HPC Community Cloud

Примеры тем бакалаврских работ

  1. Разработка модельных вычислительных приложений параллельной вычислительной частью (С++ & MPI/OpenMP/POSIX), обеспечивающей выполнение расчетов на кластерах, и графическим интерфейсом, встроенным в веб-GUI HPC2С на основе <HTML5, CSS, JS, WebGL>, или в виде отдельного десктопного приложения на Qt, или мобильного приложения (Android SDK, Unity, etc). Примеры приложений: визуализация 3D-сцен методом трассировки лучей, динамика гравитирующих тел (N-body problem), распределение тепла в пластинке, модель цунами и другие.

  2. Разработка визуальных средств анализа производительности параллельных программ: автоматизация (bash shell, JS, C++) замеров времени исполнения вычислительных программ, запускаемых на вычислительных кластерах посредством HPC2C API, визуализация графиков в веб-интерфейсе HPC2C (HTML5, CSS, JS, WebGL).

Примеры тем магистерских  работ

  1. Разработка системы для организация согласованного запуска частично-упорядоченного множества задач в HPC2C (графы обработки данных, work-flow на основе готовых вычислительных модулей – крупноблочное программирование). Планирование прохождения задач.

  2. Разработка сложных вычислительных приложений и библиотек по проектам кафедры и ее партнеров с параллельной вычислительной частью (С++ & MPI/OpenMP/POSIX), обеспечивающей выполнение расчетов на кластерах, и графическим интерфейсом, встроенным в веб-GUI HPC2С на основе <HTML5, CSS, JS, WebGL>, или в виде отдельного десктопного приложения на Qt, или мобильного приложения (Android SDK, Unity, etc).  Примеры приложений/библиотек: библиотека для реализации структурированных адаптивных сеток для решения крупномасштабных задач численного моделирования, библиотека процедур для анализа сейсмических данных.

  3. Разработка системы для управления данными пользователей: анализ потребностей пользователей в перемещении данных/файлов между персональными компьютерами и высокопроизводительными вычислительными системами, обеспечение обмена файлами между пользователями, учет версий файлов и ведение истории изменений. Учет особенностей различных сценариев работы с данными: например, файлы небольшого размера, содержащие результаты расчетов, немедленно скачиваются на компьютер пользователя, в то время как файлы большого размера скачиваются по запросу и с учетом требований пользователя на загрузку канала передачи. Автоматическое перемещение файлов для обеспечения выполнения потоковой обработки данных (см. п. 1 о work-flow)

III. Синтез параллельных программ. Представление знаний в вычислительных моделях, формальная спецификация задач, автоматический вывод алгоритмов и программ.

Проект посвящен разработке теории и инструментария для обеспечения:

  • формального представления знаний в различных предметных областях в виде вычислительных моделей (близкие понятия: онтология, семантическая сеть),

  • формулировки (спецификации) задач на вычислительной модели и на объединении множества вычислительных моделей, представляющих различные предметные области,

  • вывода эффективных алгоритмов и синтеза эффективных программ на основе

    • знаний, формально представленных в виде вычислительных моделей,

    • спецификации задачи на вычислительных моделях,

    • спецификации целевой вычислительной системы.

Темы бакалаврских работ

  1. Система визуального конструирования вычислительных моделей: графический редактор для представления вычислительных моделей и алгоритмов, система синтеза алгоритмов на простых вычислительных моделях. Встраивание визуального конструктора в HPC Community Cloud (см. соответствующий проект).

  2. Система программирования для разработки асинхронных программ: язык программирования, исполнительная система для выполнения асинхронных программ в системах с общей и распределенной памятью. Генерация асинхронных программ по спецификациям задач на вычислительных моделях.

Темы магистерских диссертаций

  1. Разработка формального представления предметной области из сферы интересов кафедры и ее партнеров в виде множества вычислительных моделей и создание предметно-ориентированной системы программирования на основе этого формального представления. Разработка библиотеки процедур для реализации типичных операций предметной области. Примеры областей: линейная алгебра, сеточные задачи, в частности, структурированные адаптивные сетки, обработка данных сейсмического мониторинга.

  2. Разработка алгоритмов и программная реализация вывода эффективных алгоритмов на основе вычислительных моделей, формальных спецификаций задач и спецификаций целевых неоднородных распределенных вычислительных систем.

IV. Система поддержки проведения международных конференций серии Parallel Computing Technologies (PaCT)
Цель: обеспечить ИТ-поддержку всем процессам в организации и проведении конференции согласно плану организационных мероприятий.
 
Требуется разработать программный комплекс, который включит: сервер управления, систему авторизации, информационный веб-сайт, систему для приема и рецензирования статей, мобильное приложение участника конференции, систему управления почтовыми рассылками, систему приема платежей.
 
Особенности проекта: генерация компонентов на основе высокоуровневых спецификаций в нужное время/по наступлению событий (например, автоматическое открытие сайта к заданному сроку с генерацией контента по шаблону + заданные параметры, публикация программы конференции автоматически по готовности и по сроку, рассылка персонализированных сообщений по наступлению событий). Сервер управления инициирует операции согласно  плану организационных мероприятий, контролирует выполнение операций.
 
Темы бакалаврских выпускных работ и магистерских диссертаций
 
Темы формулируются исходя из предпочтений студентов на основе списка задач, которые необходимо выполнить для достижения цели проекта:
1. Сбор и анализ требований 2. Обзор литературы и систем управления конференциями 3. Детальная проработка архитектуры программного комплекса 4. Реализация сервера управления 5. Реализация шаблона информационного сайта и системы развертывания сайта 6. Реализация системы управления почтовыми рассылками 7. Реализация мобильного приложения участника конференции 8. Реализация системы приема и рецензирования статей. 9. Реализация системы приема платежей и учета финансов 10. Сборка и внедрение системы для управления конференцией PaCT 11. Доработка компонентов с учетом опыта применения системы
 
V. Проект NumGrid
В целях обеспечения решения больших и сверхбольших задач математического моделирования в естественных науках в институтах СО РАН супервычислительными средствами ИВМиМГ СО РАН развивает проект NumGrid (Numerical Grid) по созданию программного обеспечения для построения распределенных вычислительных систем, объединяющих удаленные суперкомпьютеры на основе создания общей коммуникационной среды, для решения сообща больших задач. Процессы параллельного приложения NumGrid распределяются между несколькими суперкомпьютерами, взаимодействуют посредством сообщений, и получают возможность использовать специфику аппаратных, программных и информационных ресурсов каждой из вычислительных систем для решения комплексных задач.

Примеры тем бакалаврских работ

  1. Разработка программного комплекса для построения статических метакомпьютеров NumGrid (объединение суперкомпьютеров в единую метасистему).
  2. Разработка системы управления распределёнными структурами данных. Примеры: 
    1. согласованное распределение множества массивов для представления сеточных данных в задачах численного моделирования и все необходимые операции с массивами для работы прикладного уровня программ, 
    2. распределенное представление графов для графовых задач.
  3. Разработка унифицированной пользовательской системы QMaestro для управления распределенными задачами и ресурсами метакомпьютеров NumGrid.
  4. Разработка распределенной вычислительной системы на мобильных устройствах.
  5. Реализация численных моделей в распределенных вычислительных системах.

Примеры тем магистерских  работ

  1. Разработка инструментария для автоматического определения параметров элементов распределенной вычислительной сети: производительности процессоров, линий связи, наличие сопроцессоров на вычислитеьлных узлах, объемы памяти. Эта информация должна быть поставляться планировщику для принятия решений об отображении вычислений на ресурсы распределенной системы.
  2. Алгоритмы и программное обеспечение для организации межкластерных коммуникаций в NumGRID. Разработка эффективных алгоритмов для реализации коллективных коммуникационных операций MPI в неоднородных иерархических системах.
  3. Разработка средств профилирования и отладки прикладных программ для NumGrid.
  4. Разработка инструментария для анализа эффективности реализации коммуникационных операций в NumGrid, оптимизация реализации коммуникационных операций.

 

Список рекомендуемой литературы

 
 

Доступные ресурсы

Для практического освоения суперкомпьютерных технологий студенты имеют доступ к суперкомпьютерам Сибирского Суперкомпьютерного центра РАН  (ССКЦ) http://www2.sscc.ru, суперкомпьютерного центра Новосибирского национального исследовательского университета http://www.nusc.ru и к суперкомпьютерным центрам других университетов, в том числе МГУ, и институтов СО РАН. Суперкомьютеры ССКЦ и НГУ входят в список 50 наиболее производительных систем СНГ (Top50 СНГ), суперкомьютер МГУ занимает первое место с пиковой производительностью порядка 1015 вещественных операций в секунду (порядок производительности ноутбука  – 109 операций в секунду).

Успехи и перспективы выпускников

Все выпускники успешно строят карьеру по профессии в науке и в индустрии, работают в институтах Российской академии наук, университетах, в коммерческих компаниях:

Преподаватели НГУ и НГТУ, www.nstu.ru, www.nsu.ru
ИВМиМГ СО РАН исследователи, инженеры ССКЦ, ssd.sscc.ru, www2.sscc.ru