Для поступающих в магистратуру ФИТ НГУ

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

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

В магистратуре кафедра предоставляет студентам уникальную возможность повысить свою квалификацию в области супервычислений:

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

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

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

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

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

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

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

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

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

Архитектура системы 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. Разработка алгоритмов и программная реализация вывода эффективных алгоритмов на основе вычислительных моделей, формальных спецификаций задач и спецификаций целевых неоднородных распределенных вычислительных систем.

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

 
 

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

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

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

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

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