Нижегородский государственный университет им. Н.И.Лобачевского

Факультет Вычислительной Математики и Кибернетики

Учебный курс:

CS338. Многопроцессорные вычислительные системы и параллельное программирование


Общее описание курса: (36 часов)

·        Цели и задачи введения параллельной обработки данных (1 часа)

Важность проблематики параллельных вычислений.

·        Принципы построения параллельных вычислительных систем (3 часа)

Обзор современных параллельных вычислительных систем. Мультипроцессоры и мультикомпьютеры. Типовые топологии сети передачи данных. Классификация и оценка производительности. Понятие кластерных систем.

ppt01, doc01

·        Модели вычислений и методы анализа эффективности (4 часа)

Показатели эффективности параллельных вычислений: ускорение, эффективность, масштабируемость. Модель вычислений в виде графа "операции-операнды". Анализ модели: определение времени выполнения параллельного метода, оценка максимально достижимого распараллеливания, выбор вариантов распределения вычислительной нагрузки. Законы Амдаля и Густавсона-Барсиса. Агрегация модели вычислений.

ppt02, doc02

·        Анализ коммуникационной трудоемкости параллельных алгоритмов (4 часа)

Критерии оценки топологии сети. Алгоритмы маршрутизации и методы передачи данных. Типовые операции взаимодействия. Методы логического представления топологии сети. Оценка времени передачи данных для кластерных систем.

ppt03, doc03

·        Технология разработки параллельных программ для многопроцессорных систем с распределенной памятью (стандарт передачи сообщений MPI) (6 часов)

Общая характеристика стандарта MPI. Режимы передачи данных. Коллективные операции. Конструирование производных типов данных. Управление процессами. Создание логических топологий. Примеры: матричные вычисления, решение уравнений в частных производных.

ppt04_1,ppt04_2,ppt04_3, doc04

·        Технология разработки параллельных программ для многопроцессорных систем с общей памятью (стандарт OpenMP) (4 часов)

Общая характеристика стандарта OpenMP. Создание параллельных областей. Разделение вычислительной нагрузки между потоками. Работа с данными. Синхронизация. Функции и переменные окружения. Сравнительная характеристика подходов параллельного программирования для систем с распределенной и общей памятью.

·        Принципы разработки параллельных методов (2 часов)

Моделирование параллельных программ. Этапы разработки: разделение вычислений, выделение информационных зависимостей, масштабирование и распределение вычислений между процессорами. Демонстрация на примере решения гравитационной задачи N-тел.

ppt06, doc06

·        Параллельные численные алгоритмы для решения типовых задач вычислительной математики (8 часов)

Матричные вычисления:

-        матрично-векторное умножение - ppt07, doc07

-        умножение матриц - ppt08, doc08

-        решение систем линейных уравнений - ppt09, doc09

Сортировка - ppt10, doc10

Обработка графов - ppt11, doc11

Решение уравнений в частных производных - ppt12, doc12

Оптимизация - ppt14, doc14

·        Модели функционирования параллельных программ (4 часов)

Представление параллельной программы как системы параллельно выполняемых процессов. Обеспечение взаимоисключения при использовании разделяемых ресурсов. Понятие семафоров и монитора. Моделирование состояния программы в виде графа "процесс-ресурс". Анализ модели: обнаружение и исключение тупиковых ситуаций. Применение сетей Петри. Типовые задачи взаимоисключения: проблема "производитель-потребитель", задача "обедающие философы" и др.


Назад