Цели и задачи введения параллельной обработки данных (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
часов)
Матричные
вычисления:
Сортировка -
ppt10, doc10
Обработка
графов - ppt11, doc11
Решение
уравнений в частных производных - ppt12, doc12
Модели функционирования параллельных программ (4 часа)
Представление
параллельной программы как системы параллельно выполняемых процессов.
Обеспечение взаимоисключения при использовании разделяемых ресурсов. Понятие
семафоров и монитора. Моделирование состояния программы в виде графа
"процесс-ресурс". Анализ модели: обнаружение и исключение тупиковых ситуаций.
Применение сетей Петри. Типовые задачи взаимоисключения: проблема
"производитель-потребитель", задача "обедающие философы" и
др.