![]() |
Нижегородский государственный университет им. Н.И.ЛобачевскогоФакультет Вычислительной Математики и КибернетикиУчебный курс:CS338. Многопроцессорные вычислительные системы и параллельное программирование |
![]() |
Общее описание курса: (36 часов)
· Цели и задачи введения параллельной обработки данных (1 часа)
Важность проблематики параллельных вычислений.
·
Принципы
построения параллельных вычислительных систем (3 часа)
Обзор
современных параллельных вычислительных систем. Мультипроцессоры и мультикомпьютеры. Типовые топологии сети передачи данных. Классификация
и оценка производительности. Понятие кластерных систем.
·
Модели
вычислений и методы анализа эффективности (4 часа)
Показатели эффективности параллельных вычислений: ускорение, эффективность, масштабируемость. Модель вычислений в виде графа "операции-операнды". Анализ модели: определение времени выполнения параллельного метода, оценка максимально достижимого распараллеливания, выбор вариантов распределения вычислительной нагрузки. Законы Амдаля и Густавсона-Барсиса. Агрегация модели вычислений.
·
Анализ
коммуникационной трудоемкости параллельных алгоритмов (4 часа)
Критерии оценки топологии сети. Алгоритмы маршрутизации и методы передачи данных. Типовые операции взаимодействия. Методы логического представления топологии сети. Оценка времени передачи данных для кластерных систем.
·
Технология
разработки параллельных программ для многопроцессорных систем с распределенной
памятью (стандарт передачи сообщений MPI) (6 часов)
Общая характеристика стандарта MPI. Режимы передачи данных. Коллективные операции. Конструирование производных типов данных. Управление процессами. Создание логических топологий. Примеры: матричные вычисления, решение уравнений в частных производных.
ppt04_1,ppt04_2,ppt04_3, doc04
·
Технология
разработки параллельных программ для многопроцессорных систем с общей памятью
(стандарт OpenMP) (4 часов)
Общая характеристика стандарта OpenMP. Создание параллельных областей. Разделение вычислительной нагрузки между потоками. Работа с данными. Синхронизация. Функции и переменные окружения. Сравнительная характеристика подходов параллельного программирования для систем с распределенной и общей памятью.
·
Принципы
разработки параллельных методов (2 часов)
Моделирование параллельных программ. Этапы разработки: разделение вычислений, выделение информационных зависимостей, масштабирование и распределение вычислений между процессорами. Демонстрация на примере решения гравитационной задачи N-тел.
·
Параллельные
численные алгоритмы для решения типовых задач вычислительной математики (8
часов)
Матричные вычисления:
- матрично-векторное умножение - ppt07, doc07
- умножение матриц - ppt08, doc08
- решение систем линейных уравнений - ppt09, doc09
Обработка графов - ppt11, doc11
Решение уравнений в частных производных - ppt12, doc12
·
Модели
функционирования параллельных программ (4 часов)
Представление параллельной программы как системы параллельно выполняемых процессов. Обеспечение взаимоисключения при использовании разделяемых ресурсов. Понятие семафоров и монитора. Моделирование состояния программы в виде графа "процесс-ресурс". Анализ модели: обнаружение и исключение тупиковых ситуаций. Применение сетей Петри. Типовые задачи взаимоисключения: проблема "производитель-потребитель", задача "обедающие философы" и др.