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

Направление подготовки: 010200 Математика и компьютерные науки

Квалификация (степень) выпускника: бакалавр

Форма обучения: очная

Автор: к. ф.-м. н., доцент кафедры математического моделирования .

1. Целями освоения дисциплины "Введение в параллельное программирование" являются:

1) знакомство с современными технологиями высокопроизводительных вычислений

2) получение знаний об эффективно реализуемых параллельных алгоритмах

3) умение оценить применимость и эффективность различных параллельных технологий и алгоритмов для решения ресурсоемких вычислительных задач

2. Дисциплина входит в вариативную часть цикла Б2. математических и естественнонаучных дисциплин.

Для ее успешного изучения необходимы знания и умения, приобретенные в результате освоения предшествующих дисциплин: «информатика», «языки программирования».

Знания и умения, приобретенные студентами в результате изучения дисциплины, будут использоваться при изучении курсов численных методов, математического моделирования, а также при выполнении курсовых и дипломных работ, связанных с математическим моделированием.

3. В результате освоения дисциплины обучающийся должен:

Знать:

основные типы технологий параллельных вычислений, область их применимости; базовые паралельные алгоритмы, особенности их реализации для высокопроизводительных вычислений

Уметь:

адаптировать типовые алгоритмы для решения конкретных задач, реализовывать параллельные алгоритмы с помощью технологий как с общей, так и распределенной памятью

НЕ нашли? Не то? Что вы ищете?

Владеть:

базовыми средствами разработки программного обеспечения для паралльных вычислительных систем

4. Общая трудоемкость дисциплины составляет 2 зачетные единицы, 72 часа.

5. Содержание дисциплины:

№ п/п

Раздел дисциплины

1

Общие сведения о параллельном программировании

Обзор технологий параллельных вычислений. Архитектуры с общей памятью. Простейшие параллельные алгоритмы типа «разделяй и властвуй» Модели согласованности памяти. Границы эффективного параллелизма. Идеально параллелизуемые задачи

2

Архитектуры с общей памятью

Oсновы OpenMP. Директивы препроцессора и необходимые функции. Синхронизация в OpenMP. Модели согласованности памяти, реализация в OpenMP. Декомпозиция области и численное решение уравнения теплопроводности.

3

Архитектуры с распределенной памятью

Основы MPI. Работа с университетским кластером. Пересылка и распределение данных в MPI. Операции точка-точка и коллективные операции. Параллельные реализации простейших матричных алгоритмов. Топологии, группы и коммуникаторы в MPI. Сеточные вычисления, решение уравнения Лапласа методом Якоби.

6. Учебно-методическое и информационное обеспечение дисциплины:

а) основная литература:

1., . Параллельное и функциональное программирование. Методические указания. Яросл. гос. ун-т им. . — Ярославль: ЯрГУ, 2009.

б) дополнительная литература:

1.. Основы многопоточного, параллельного и распределенного программирования. : Пер. с англ. — М.: Издательский дом «Вильямс», 2003.

2., Вл. В. Воеводин. Параллельные вычисления. С.-Петербург, "БХВ-Петербург", 2002.

3.. Параллельное программирование с использованием технологии OpenMP: учеб. пособие — М.: Изд-во МГУ, 2009.

4.Корнеев программирование в MPI. — Москва-Ижевск: Институт компьютерных исследований, 2003.

5.Д. Кнут, Искусство программирования, том 1. Основные алгоритмы. : Пер. с англ. — М.: Издательский дом «Вильямс», 2008.

6.Д. Уоткинс, Основы матричных вычислений. Пер. с англ. — М.: БИНОМ. Лаборатория знаний, 2006.

в) программное обеспечение и Интернет-ресурсы:

1.OpenMP Architecture Review Board: http://www. openmp. org

2.PARALLEL. RU http://parallel. ru