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

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

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

Семестр 1

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

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

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

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

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

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

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

Семестр 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. Параллельные методы решения задач многоэкстремальной оптимизации.

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