ДНМ05
Теоретические основы многопоточного, параллельного и распределенного программирования
Модели параллельных вычислений. Итеративный и рекурсивный параллелизм.
Программирование с разделяемыми переменными: процессы и синхронизация.
Блокировки и барьеры. Семафоры. Мониторы.
Распределенное программирование: передача сообщений. Удаленный вызов процедур. Модели взаимодействия процессов.
Синхронное параллельное программирование.
СДМ01
Архитектуры параллельных вычислительных систем
Цель курса – обеспечение глубокого понимания фундаментальных
принципов и инженерных решений, используемых для построения современных вычислительных систем. В курсе предполагается рассмотреть следующие основные вопросы: Архитектура электронных вычислительных систем. Каноническая функциональная архитектура. Модель вычислителя.
Тематика курса. Процессоры. Архитектура системы команд. Классификация процессоров (CISC и RISC) . Конвейерная и суперскалярная обработка. Аппаратные средства поддержки большой степени распараллеливания. Аппаратные механизмы многопотоковой обработки. Многоядерные процессоры. Современные методы организации работы памяти. Расслоение памяти, организация кэш памяти. Типы и классы многопроцессорных вычислительных систем и области их применения.
СДМ02
Технологии параллельного программирования
Цель курса – изучение основных технологий разработки параллельных программ.
Тематика курса. Последовательная и параллельная модели программирования. Парадигмы параллельного программирования: параллелизм данных, параллелизм задач.
Параллельное программирование на основе передачи сообщений с использованием библиотеки MPI. Технологии программирования OpenMP для систем с разделяемой памятью. Гибридные MLP технологии параллельного программирования.
Практикум. Предполагается сопровождение лекционного курса практикумом с выходом на различные параллельные системы.
Методы разработки параллельных программ
1. Языки параллельного программирования. Современный Фортран, язык HPF.
2. Распараллеливание последовательных программ.
3. Параллельные библиотеки научных вычислений.
4. Параллельное программирование на основе Java.
5. Технологии параллельного программирования с использованием шаблонов. Отладка эффективности параллельных программ.
6. Практикум, семинарские занятия. Предполагается сопровождение лекционного курса практикумом с выходом на различные параллельные системы.
СДМ03
Практикум по параллельным вычислениям. (Базовые алгоритмы. Технология MPI)
Разработка распределенной системы поддержки практикума по параллельным вычислениям. Разработка пакета демонстрационных задач по технологиям параллельного программирования. Разработка заданий практикума.
Практикум по параллельным вычислениям. (Технологии Open MP. Гибридное MPI/Open MP программирование)
Разработка модулей практикума в рамках общей системы поддержки практикума по параллельным вычислениям. Разработка пакета демонстрационных задач. Разработка заданий практикума.
СДМ04
Программное обеспечение параллельных вычислительных систем
Цель курса – обеспечение глубокого понимания фундаментальных принципов, используемых для создания современного программного обеспечения вычислительных систем. В курсе предполагается рассмотреть следующие основные вопросы:
Особенности программного обеспечения поддержки многопроцессорных систем. Распределенные операционные системы. Системы управления заданиями. Компиляторы. Инструментальные системы поддержки разработки параллельных программ. Отладка параллельных программ. Особенности организации вычислений на кластерах. Основы GRID компьютинга.
СДМ05
Высокоэффективные параллельные алгоритмы
Параллельные алгоритмы сортировки. Быстрое преобразование Фурье.
Матричные алгоритмы. Параллельные алгоритмы LU факторизации и решение систем линейных уравнений для плотных и разреженных матриц.
Уравнения в частных производных. Комбинаторный поиск.
СДМ07
Теория графов и ее приложения в параллельных вычислениях
Разработчики курса: по согласованию с кафедрой математической кибернетики. Операции на графах. Матрицы, ассоциированные с графами. Деревья. Связность. Планарность. Поиск в глубину. Отыскание связных компонент. Минимальный остов. Кратчайшие пути. Графовые модели параллельных программ. Параллельные библиотеки для работы с графами.
СДМ08
Численные методы параллельной обработки данных
Разработчики курса: по согласованию с кафедрами математической физики и вычислительных методов. Параллельные методы численного решения задач математической физики. Вычислительные методы в линейной алгебре. Методы оптимизации. Методы разделения областей. Метод Монте - Карло. Метод частиц.
Практикум, семинарские занятия.