Введение в методы параллельного программирования

Учебное пособие содержит материал для работы в области параллельного программирования.
Для специалистов
Записаться
Объём

36 час.
Длительность

30 дней
Нагрузка

6 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Учебный курс посвящен изучению методов и технологий параллельного программирования, необходимых для работы с современными суперкомпьютерами и кластерами. Обучение начинается с основ архитектуры параллельных систем и оценки коммуникационной трудоемкости алгоритмов, после чего рассматривается практическая разработка на базе интерфейса MPI. Особое внимание уделяется реализации параллельных методов для матричных вычислений, решения систем линейных уравнений, сортировки и обработки графов. Курс будет полезен разработчикам высоконагруженных систем, специалистам в области компьютерного моделирования и инженерам-исследователям, стремящимся освоить инструменты оптимизации вычислений и создания масштабируемых приложений.
Цели
  • Сформировать понимание архитектурных принципов функционирования параллельных вычислительных систем.
  • Развить умение моделировать и анализировать параллельные вычисления для оценки их эффективности.
  • Систематизировать знания о разработке параллельных алгоритмов с использованием интерфейса MPI.
  • Подготовить к проектированию параллельных методов решения типовых вычислительных задач.
Чему я научусь?
  • Оценивать коммуникационную трудоемкость и ускорение параллельных алгоритмов.
  • Разрабатывать программы с использованием операций передачи данных и виртуальных топологий в MPI.
  • Реализовывать параллельные методы матричных вычислений и решения систем линейных уравнений.
  • Применять алгоритмы параллельной сортировки и обработки графов в программных проектах.
  • Использовать специализированные системы для исследования производительности параллельных методов.

Авторы

Гергель Виктор Павлович
Гергель Виктор Павлович
Д.т.н., профессор, декан факультета вычислительной математики и кибернетики Нижегородского государственного университета им. Н.И. Лобачевского.
Чему я научусь?
  • Оценивать коммуникационную трудоемкость и ускорение параллельных алгоритмов.
  • Разрабатывать программы с использованием операций передачи данных и виртуальных топологий в MPI.
  • Реализовывать параллельные методы матричных вычислений и решения систем линейных уравнений.
  • Применять алгоритмы параллельной сортировки и обработки графов в программных проектах.
  • Использовать специализированные системы для исследования производительности параллельных методов.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз.
1 Введение В лекции дается общая информация о курсе. Вводится понятие параллельных вычислений и разъясняется их необходимость. Рассказывается... В лекции дается общая информация о курсе. Вводится понятие параллельных вычислений и разъясняется их необходимость. Рассказывается о сдерживающих факторах развития этой отрасли, а также предоставляется характеристика необходимых знаний и умений для работы в области вычислений ещё
2 Принципы построения параллельных вычислительных систем Лекция посвящена рассмотрению принципов построения параллельных вычислительных систем (ПВС). Дана краткая характеристика способов достижения параллелизма, приведены... Лекция посвящена рассмотрению принципов построения параллельных вычислительных систем (ПВС). Дана краткая характеристика способов достижения параллелизма, приведены примеры ПВС. Приводится классификация параллельных вычислительных систем, рассматриваются типовые топологии сетей передачи данных в ПВС. ещё
Принципы построения параллельных вычислительных систем тест для курса Введение в методы параллельного программирования 30 мин
3 Моделирование и анализ параллельных вычислений "В лекции описывается модель вычислений в виде графа ""операции – операнды"". Приводятся основные показатели качества параллельных... "В лекции описывается модель вычислений в виде графа ""операции – операнды"". Приводятся основные показатели качества параллельных методов — ускорение (speedup), эффективность (efficiency), стоимость (cost) и масштабируемость (scalability) вычислений. Введенные понятия демонстрируются на примере учебной задачи нахождения частных сумм последовательности числовых значений" ещё
Моделирование и анализ параллельных вычислений тест для курса Введение в методы параллельного программирования 30 мин
4 Оценка коммуникационной трудоемкости параллельных алгоритмов Лекция посвящена вопросам анализа информационных потоков, возникающих при выполнении параллельных алгоритмов. Дается общая характеристика механизмов передачи... Лекция посвящена вопросам анализа информационных потоков, возникающих при выполнении параллельных алгоритмов. Дается общая характеристика механизмов передачи данных, проводится анализ трудоемкости основных операций обмена информацией, рассматриваются методы логического представления структуры многопроцессорных вычислительных систем. ещё
Оценка коммуникационной трудоемкости параллельных алгоритмов тест для курса Введение в методы параллельного программирования 35 мин
5 Параллельное программирование на основе MPI В лекции рассматривается стандарт для программирования в системах с распределенной памятью MPI. Дается обзор истории возникновения... В лекции рассматривается стандарт для программирования в системах с распределенной памятью MPI. Дается обзор истории возникновения и развития стандарта, а также перечисляются его основные возможности. Приводятся примеры программ, использующих рассматриваемый стандарт. ещё
6 Операции передачи данных между процессами и производные типы данных в MPI В лекции продолжается рассматриваться параллельное программирование на основе MPI. Рассказывается об операциях передачи данных между процессами... В лекции продолжается рассматриваться параллельное программирование на основе MPI. Рассказывается об операциях передачи данных между процессами и производных типах данных в MPI. ещё
7 Управление группами, виртуальные топологии в MPI Лекция посвящена управлению группами процессов и коммуникаторами, виртуальным топологиям и дополнительным возможностям MPI.
Управление группами, виртуальные топологии в MPI тест для курса Введение в методы параллельного программирования 60 мин
8 Принципы разработки параллельных методов В лекции рассматриваются базовые принципы разработки параллельных алгоритмов. Описываются основные понятия, подробно разбираются все этапы создания... В лекции рассматриваются базовые принципы разработки параллельных алгоритмов. Описываются основные понятия, подробно разбираются все этапы создания и анализа параллельных алгоритмов. Приводится пример применения обсуждаемых методов. ещё
Принципы разработки параллельных методов тест для курса Введение в методы параллельного программирования 30 мин
9 Параллельные методы умножения матрицы на вектор В лекции рассматривается задача умножения матрицы на вектор. Приводится постановка задачи и последовательный алгоритм ее решения.... В лекции рассматривается задача умножения матрицы на вектор. Приводится постановка задачи и последовательный алгоритм ее решения. Описываются методы разделения матрицы между процессорами вычислительной системы, которые необходимы для параллельной реализации матричных операций. Далее излагаются три возможных подхода к параллельной реализации алгоритма умножения матрицы на вектор. ещё
Параллельные методы умножения матрицы на вектор тест для курса Введение в методы параллельного программирования 30 мин
10 Параллельные методы матричного умножения В лекции рассматривается одна из основных задач матричных вычислений— умножение матриц. Приводится постановка задачи и дается... В лекции рассматривается одна из основных задач матричных вычислений— умножение матриц. Приводится постановка задачи и дается последовательный алгоритм ее решения. Далее описываются возможные подходы к параллельной реализации алгоритма и подробно рассматриваются наиболее широко известные алгоритмы: алгоритм, основанный на ленточной схеме разделения данных, алгоритм Фокса (Fox) и алгоритм Кэннона (Cannon). ещё
Параллельные методы матричного умножения тест для курса Введение в методы параллельного программирования 30 мин
11 Параллельные методы решения систем линейных уравнений В лекции рассматривается задача решения систем линейных уравнений. Приводятся необходимые определения и постановка задачи. Описывается последовательный... В лекции рассматривается задача решения систем линейных уравнений. Приводятся необходимые определения и постановка задачи. Описывается последовательный и параллельный варианты одного из прямых методов решения линейных систем общего вида – метода Гаусса. Далее дается описание последовательного и параллельного алгоритмов, реализующих итерационный метод сопряженных градиентов. ещё
Параллельные методы решения систем линейных уравнений тест для курса Введение в методы параллельного программирования 30 мин
12 Параллельные методы сортировки В лекции рассматриваются различные алгоритмы сортировки данных. Излагаются как общие принципы, применяемые при распараллеливании, так и... В лекции рассматриваются различные алгоритмы сортировки данных. Излагаются как общие принципы, применяемые при распараллеливании, так и конкретные алгоритмы. Теоретически оценивается эффективность рассматриваемых алгоритмов. Приводятся и анализируются результаты вычислительных экспериментов. ещё
Параллельные методы сортировки тест для курса Введение в методы параллельного программирования 40 мин
13 Параллельные методы обработки графов В лекции рассматриваются различные типовые задачи, возникающие при обработке графов. Приводятся алгоритмы, применяемые для решения этих... В лекции рассматриваются различные типовые задачи, возникающие при обработке графов. Приводятся алгоритмы, применяемые для решения этих задач, и обсуждаются пути их распараллеливания. Дается теоретическая оценка эффективности рассматриваемых алгоритмов. Анализируются результаты вычислительных экспериментов. ещё
Параллельные методы обработки графов тест для курса Введение в методы параллельного программирования 45 мин
14 Параллельные методы решения дифференциальных уравнений в частных производных В лекции рассматриваются вопросы организации параллельных вычислений для решения задач, в которых при математическом моделировании используются... В лекции рассматриваются вопросы организации параллельных вычислений для решения задач, в которых при математическом моделировании используются дифференциальные уравнения в частных производных. Для численного решения подобных задач обычно применяется метод конечных разностей (метод сеток), обладающий высокой вычислительной трудоемкостью. В лекции последовательно разбираются возможные способы распараллеливания сеточных методов на многопроцессорных вычислительных системах с общей и распределенной памятью. При этом большое внимание уделяется проблемам, возникающим при организации параллельных вычислений, анализу причин появления таких проблем и нахождению путей их преодоления. Для наглядной демонстрации излагаемого материала в качестве учебного примера рассматривается проблема численного решения задачи Дирихле для уравнения Пуассона. ещё
Параллельные методы решения дифференциальных уравнений в частных производных тест для курса Введение в методы параллельного программирования 30 мин
15 Параллельные методы многоэкстремальной оптимизации В лекции рассматриваются задачи минимизации функции, дается обзор методов их решения и программная реализация.
16 Программная система ПараЛаб для изучения и исследования методов параллельных вычислений В лекции описывается программная система Параллельная Лаборатория (сокращенное наименование – ПараЛаб), которая предназначена для учебного применения... В лекции описывается программная система Параллельная Лаборатория (сокращенное наименование – ПараЛаб), которая предназначена для учебного применения студентами и преподавателями вузов в целях исследования и изучения параллельных алгоритмов решения сложных вычислительных задач в рамках лабораторного практикума по различным учебным курсам в области параллельного программирования. ещё
Программная система ПараЛаб для изучения и исследования методов параллельных вычислений тест для курса Введение в методы параллельного программирования 30 мин
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз.
Экзамен