Наименование дисциплины: Введение в параллельное программирование

Направление подготовки (специальность): 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://*****