Программирование для высокопроизводительных вычислительных систем

Цели и задачи дисциплины
Целью дисциплины является изучение современных технологий разработки параллельных программ для различных аппаратных архитектур. Основные задачи дисциплины: ознакомление с современными технологиями и соответствующими программными средствами разработки, тестирования и отладки параллельных программ для многопроцессорных многоядерных высокопроизводительных вычислительных систем.
Краткое содержание дисциплины
Традиционные языки программирования и распараллеливающие компиляторы. Надъязыковые средства для организации параллелизма. Параллельные расширения традиционных языков программирования. Параллельные языки программирования. Библиотеки и интерфейсы для передачи сообщений. Модель программирования в общей памяти. Модель "пульсирующего" параллелизма FORK-JOIN. Стандарт OpenMP: основные понятия, директивы и функции. Модель передачи сообщений в системах с распределенной памятью. Режимы запуска параллельных программ SPMD и MPMD. Стандарт Message Passing Interface (MPI). Основные понятия и функции MPI. Операции "точка-точка", режимы приема и отправки сообщений. Коллективные операции. Расширения стандарта в версии MPI-2. Сравнительный анализ технологий программирования OpenMP и MPI. Уровни поддержки нитей в MPI-программе. Безопасное управление нитями в гибридной программе MPI+OpenMP. Библиотека Intel Cluster OpenMP. Модель распараллеливания work stealing. Основные компоненты Intel Cilk Plus и модели исполнения: ключевые слова (cilk_for, cilk_spawn, cilk_sync), преобразователи (reducers), специальное представление массивов (C/C++ Extensions for Array Notation, CEAN), элементарные функции. Современный инструментарий для разработки параллельных программ: компиляторы, отладчики, средства анализа эффективности программ (на примере Intel Parallel Studio).
Компетенции обучающегося, формируемые в результате освоения дисциплины
Выпускник должен обладать:
  • ОПК-5 способностью объективно оценивать результаты исследований и разработок, выполненных другими специалистами и в других научных учреждениях
  • ПК-4.1 знанием задач развития теории программирования, создания и сопровождения программных средств различного назначения (для направленности 05.13.11)
  • ПК-4.2 умением повышать эффективность и надежность процессов обработки и передачи данных и знаний в вычислительных машинах, комплексах и компьютерных сетях (для направленности 05.13.11)
Вы нашли ошибку в тексте:
Просто нажмите кнопку «Сообщить об ошибке» — этого достаточно. Также вы можете добавить комментарий.