Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Параллельное программирование (лекции) / алг_и_техн_разр_ППМОАИС.docx
Скачиваний:
34
Добавлен:
19.04.2015
Размер:
66.95 Кб
Скачать

Планирование самостоятельной работы студентов

Модули и темы

Виды СРС

Неделя семестра

Объем часов

обязательные

дополнит.

1

Введение в дисциплину

Работа с литературой, источниками Интернет

1

4

2

Моделирование и анализ параллельных вычислений. Оценки трудоемкости параллельных алгоритмов

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

2-3

4

3

Основы технологии OpenMP

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

4-6

4

4

Параллельные алгоритмы умножения матрицы на вектор.

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

7-8

4

5

Параллельные алгоритмы матричного умножения

Анализ статей по выбору, разработка приложений

Вычислительный эксперимент

9-10

4

6

Параллельные алгоритмы решения систем линейных алгебраических уравнений

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

11-12

4

7

Параллельное программирование в среде Microsoft Visual Studio

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

13-14

4

8

Основы технологии MPI. Стандарт MPI. Обмен сообщениями

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

15-16

4

9

Стандартные и пользовательские типы данных. Виртуальные топологии в MPI.

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

17-18

4

Итого за 1 семестр

36

1

Введение в технологию CUDA

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

1-2

4

2

Программирование GPU-систем

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

3-4

4

3

Взаимодействие CUDA, OpenMP, MPI

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

5

6

4

Принципы распараллеливания сортировки.

Работа с литературой, источниками Интернет

Вычислительный эксперимент

6-7

4

5

Параллельные методы сортировки

Анализ статей по выбору, разработка приложений

Вычислительный эксперимент

8-9

4

6

Параллельные методы на графах

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

10-11

6

7

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

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

12-13

4

8

Постановка и проведение вычислительных экспериментов

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

14-16

4

9

Сравнительный анализ моделей и технологий параллельного программирования.

Работа с литературой, источниками Интернет, разработка приложений

Вычислительный эксперимент

17

6

Итого за 2 семестр

42

  1. Разделы дисциплины и междисциплинарные связи с обеспечиваемыми (последующими) дисциплинами

№ п/п

Наименование обеспечиваемых (последующих) дисциплин

Темы дисциплины необходимые для изучения обеспечиваемых (последующих) дисциплин

1

2

3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9

1

Методология научных исследований

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

2

Производственная практика

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

3

Научно-исследовательская работа

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

4

Выполнение ВКР

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

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

Семестр 1

1. Введение в дисциплину. Принципы построения параллельных вычислительных систем. Примеры и классификация вычислительных систем. Типовые схемы коммуникации в многопроцессорных вычислительных системах.

2. Моделирование и анализ параллельных вычислений.Модели вычислений. Оценки трудоемкости параллельных алгоритмов. Коммуникационная трудоемкость параллельных алгоритмов. Показатели эффективности и анализ масштабируемости параллельных вычислений.

3. Основы технологии OpenMP. Модель «fork-join». Классификация переменных. Основные директивы и их опции. Распараллеливание по данным и по операциям. Решение проблемы синхронизации. Отладка программ.

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

5. Параллельные алгоритмы матричного умножения. Принципы распараллеливания. Разделение данных. Ленточная схема разделения данных. Блочное разделение данных (алгоритмы Фокса и Кэннона).

6. Параллельные алгоритмы решения систем линейных алгебраических уравнений. Алгоритм Гаусса. Масштабирование и распределение подзадач. Метод сопряженных градиентов. Последовательный и параллельный алгоритмы.

7. Параллельное программирование в среде MicrosoftVisualStudio. Многопоточная обработка. Параллелизм задач. Параллелизм данных. Класс Parallel; методы Parallel.Invoke; Parallel.For; Parallel.Foreach

8. Основы технологии MPI. СтандартMPI. МодельMPI. Процессы. Обмен сообщениями. Группы и коммуникаторы. Типы сообщений. Функции передачи и приемы сообщений.

9. Стандартные и пользовательские типы данных. Создание пользовательских типов данных. Использование пользовательских типов данных при обмене сообщениями. Виртуальные топологии в MPI. Функции определения виртуальной топологии.

Семестр 2

1. Введение в технологию CUDA. Многоядерные вычислительные системы. Массивно-параллельные процессоры. Модель программированияCUDA.

2. Программирование GPU-систем. Потоки команд. Основы OpenCL. Организация потоков данных. Доступ к памяти.

3. Взаимодействие CUDA,OpenMP,MPI. Программирование для гибридных систем с графическими ускорителями. РеализацииCUDA+(thread,OpenMP,MPI).

4. Принципы распараллеливания сортировки. Основные последовательные алгоритмы сортировки данных. Масштабирование параллельных вычислений.

5. Параллельные методы сортировки. Пузырьковая сортировка. Сортировка Шелла. Быстрая сортировка. Обобщенный алгоритм. Сортировка с использованием регулярного набора образцов.

6. Параллельные методы на графах. Задача поиска кратчайших путей. Задача нахождения минимального охватывающего дерева. Задача оптимального разделения графов.

7. Постановка и параллельные методы решения задачи Дирихле. Последовательные методы решения. Параллельные вычисления для системы с общей памятью (технология OpenMP). Параллельные вычисления для системы с распределенной памятью (технология MPI).

8. Постановка и проведение вычислительных экспериментов. Пошаговое и последовательное проведение вычислительных экспериментов. Выполнение серии вычислительных экспериментов. Модельные и реальные вычислительные эксперименты.

9. Сравнительный анализ моделей и технологий параллельного программирования. Критерии сравнения. Удобство программирования. Реализация типовых численных методов. Зависимость от коммуникационного оборудования.

  1. Планы семинарских занятий.

Семинарские занятия учебным планом не предусмотрены

  1. Темы лабораторных работ.

Семестр 1

1. Моделирование и анализ параллельных вычислений.Выполнение оценки трудоемкости параллельных алгоритмов на примере стандартных схем суммирования. Выполнение оценки коммуникационной трудоемкости параллельных алгоритмов.

2. Основы технологии OpenMP. Практическая реализация параллельных алгоритмов обработки массивов на языке С++ в средеMicrosoftVisualStudio. Распараллеливание по данным и по операциям. Решение проблемы синхронизации. Отладка программ.

3. Программная реализация параллельных алгоритмов умножения матрицы на вектор на языке С++ в средеMicrosoftVisualStudioс помощью технологииOpenMP. Разделение данных. Разделение данных по строкам. Разделение данных по столбцам. Блочное разделение данных.

4. Программная реализация параллельных алгоритмов матричного умножения на языке С++ в средеMicrosoftVisualStudioс помощью технологииOpenMP. Принципы распараллеливания. Разделение данных. Ленточная схема разделения данных. Блочное разделение данных (алгоритмы Фокса и Кэннона).

5. Программная реализация параллельных алгоритмоврешения систем линейных алгебраических уравнений на языке С++ в средеMicrosoftVisualStudioс помощью технологииOpenMP. Алгоритм Гаусса. Масштабирование и распределение подзадач. Метод сопряженных градиентов. Последовательный и параллельный алгоритмы.

6. Параллельное программирование в среде MicrosoftVisualStudio. Разработка приложений, реализующих многопоточную обработку данных. Программная реализация параллелизма задач и параллелизма данных. Использование методов класса Parallel (Parallel.Invoke; Parallel.For; Parallel.Foreach).

7. Основы технологии MPI. УстановкаMPI. Запуск и отладкаMPI-программ на языке С++ в средеMicrosoftVisualStudio. Программная реализация параллельных алгоритмов обработки двумерных массивов с использованиемстандартных и пользовательских типов данных.

Семестр 2

1. Введение в технологию CUDA.Программирование GPU-систем. Основы OpenCL. Организация потоков данных. Доступ к памяти.Программная реализация параллельных алгоритмов обработки двумерных массивов.

2. Разработка программных приложений, реализующих взаимодействие технологий CUDA,OpenMP,MPI. Программирование для гибридных систем с графическими ускорителями на примере программной реализации параллельных алгоритмов обработки двумерных массивов. РеализацииCUDA+(thread,OpenMP,MPI).

3. Принципы распараллеливания сортировки. Основные последовательные алгоритмы сортировки данных. Программная реализация параллельныхметодов сортировки с помощью технологии MPI. Пузырьковая сортировка. Сортировка Шелла. Быстрая сортировка. Обобщенный алгоритм. Сортировка с использованием регулярного набора образцов. Программная реализация параллельныхметодов с помощью технологии MPI.

4. Параллельные методы на графах. Задача поиска кратчайших путей. Задача нахождения минимального охватывающего дерева. Задача оптимального разделения графов. Программная реализация параллельных методов с помощью технологии MPI.

5. Постановка и параллельные методы решения задачи Дирихле. Последовательные и параллельные методы решения. Программная реализация параллельныхметодов с помощью технологий OpenMP и MPI.

6. Постановка и проведение вычислительных экспериментов на многопроцессорной вычислительной системе. Пошаговое и последовательное проведение вычислительных экспериментов. Выполнение серии вычислительных экспериментов. Постановка и проведение модельных и реальных вычислительных экспериментов.

  1. Примерная тематика курсовых работ (если они предусмотрены учебным планом ООП).

1. Сравнительный анализ моделей параллельного программирования.

2. Сравнительный анализ технологий параллельного программирования.

3. Обзор процессорных и сетевых решений, применяемых в современных кластерах.

4. Технологии параллельного программирования и метакомпьютинг.

5. Технологии программируемой логики.

6. Обзор API поточной обработки.

7. Приемы многопоточной обработки.

8. Обзор основных проблем параллельного программирования.

9. Поточная обработка на многоядерных процессорах Intel.

10. Обзор продуктов Intel для разработки параллельных программ.

11. Обзор Parallel LINQ (Microsoft Visual Studio).

12. Обзор возможностей класса Task для разработки параллельных программ (Microsoft Visual Studio).

13. Синхронизация потоков в .NET Framework.

14. Отладка многопоточных приложений (Microsoft Visual Studio).

15. Параллельные методы решения задач исследования операций.

16. Параллельные методы решения задач многоэкстремальной оптимизации.

  1. Учебно-методическое обеспечение самостоятельной работы студентов. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины.

Соседние файлы в папке Параллельное программирование (лекции)