Наименование дисциплины: Введение в параллельное программирование
Направление подготовки (специальность): 090301 Компьютерная безопасность
Специализация: Математические методы защиты информации
Квалификация (степень) выпускника: специалист
Форма обучения: очная
Автор: к. ф.-м. н., доцент кафедры математического моделирования .
1. Целями освоения дисциплины "Введение в параллельное программирование" являются:
1) знакомство с современными технологиями высокопроизводительных вычислений
2) получение знаний об эффективно реализуемых параллельных алгоритмах
3) умение оценить применимость и эффективность различных параллельных технологий и алгоритмов для решения ресурсоемких вычислительных задач
2. Дисциплина "Введение в параллельное программирование" входит в вариативную часть профессионального цикла С3..
Для ее успешного изучения необходимы знания и умения, приобретенные в результате освоения предшествующих дисциплин: «информатика», «языки программирования».
Знания и умения, приобретенные студентами в результате изучения дисциплины, будут использоваться при изучении спецкурсов, а также при выполнении курсовых и дипломных работ.
3. В результате освоения дисциплины обучающийся должен:
Знать:
основные типы технологий параллельных вычислений, область их применимости; базовые паралельные алгоритмы, особенности их реализации для высокопроизводительных вычислений
Уметь:
адаптировать типовые алгоритмы для решения конкретных задач, реализовывать параллельные алгоритмы с помощью технологий как с общей, так и распределенной памятью
Владеть:
базовыми средствами разработки программного обеспечения для паралльных вычислительных систем.
4. Общая трудоемкость дисциплины составляет 4 зачетные единицы, 144 часа.
5.Содержание дисциплины:
№ п/п | Раздел дисциплины |
1 | Общие сведения о параллельном программировании Обзор технологий параллельных вычислений. Архитектуры с общей памятью. Простейшие параллельные алгоритмы типа «разделяй и властвуй» Модели согласованности памяти. Границы эффективного параллелизма. Идеально параллелизуемые задачи |
2 | Архитектуры с общей памятью Oсновы OpenMP. Директивы препроцессора и необходимые функции. Синхронизация в OpenMP. Модели согласованности памяти, реализация в OpenMP. |
3 | Архитектуры с распределенной памятью Основы MPI. Работа с университетским кластером. Пересылка и распределение данных в MPI. Операции точка-точка и коллективные операции. Параллельные реализации простейших матричных алгоритмов. Топологии, группы и коммуникаторы в MPI. Сеточные вычисления, решение уравнения Лапласа методом Якоби. |
6. Учебно-методическое и информационное обеспечение дисциплины:
а) основная литература:
1. , . Параллельное и функциональное программирование. Методические указания. Яросл. гос. ун-т им. . — Ярославль: ЯрГУ, 2009.
2. . Основы многопоточного, параллельного и распределенного программирования. : Пер. с англ. — М.: Издательский дом «Вильямс», 2003.
3. , Вл. В. Воеводин. Параллельные вычисления. С.-Петербург, "БХВ-Петербург", 2002.
б) дополнительная литература:
1. Д. Кнут, Искусство программирования, том 1. Основные алгоритмы. : Пер. с англ. — М.: Издательский дом «Вильямс», 2008.
2. Д. Уоткинс, Основы матричных вычислений. Пер. с англ. — М.: БИНОМ. Лаборатория знаний, 2006.
3. . Параллельное программирование с использованием технологии OpenMP: учеб. пособие — М.: Изд-во МГУ, 2009.
4. Корнеев программирование в MPI. — Москва-Ижевск: Институт компьютерных исследований, 2003.
в) программное обеспечение и Интернет-ресурсы:
1. OpenMP Architecture Review Board: http://www. openmp. org
2. ***** http://*****


