Нижегородский государственный университетим. Н.И. ЛобачевскогоЗимняя школа по параллельному программированиюПрактикум по технологиям параллельного программирования (на примере учебно-исследовательской задачи) презентация

Содержание

Практикум по технологиям параллельного программирования Учебная задача В качестве учебного примера рассматривается проблема численного решения задачи Дирихле для уравнения Пуассона

Слайд 1Нижегородский государственный университет им. Н.И. Лобачевского Зимняя школа по параллельному программированию Практикум по технологиям

параллельного программирования (на примере учебно-исследовательской задачи)

Гергель В.П., проф., д.т.н., кафедра МО ЭВМ ВМК ННГУ


Слайд 2Практикум по технологиям параллельного программирования
Учебная задача
В качестве учебного примера рассматривается

проблема численного решения задачи Дирихле для уравнения Пуассона

Слайд 3Практикум по технологиям параллельного программирования
Последовательные методы решения
Метод конечных разностей


Слайд 4Практикум по технологиям параллельного программирования
Итерационные схемы
Метод Гаусса-Зейделя
Трудоемкость

T = kmN2
N - число узлов по каждой координате
m - число операций на узел
k - количество итераций

Слайд 5Практикум по технологиям параллельного программирования
Алгоритм 1.1


Слайд 6Практикум по технологиям параллельного программирования
Пример расчетов
N = 100
eps= 0.1
k = 210


Слайд 7Практикум по технологиям параллельного программирования
Организация параллельных вычислений
Системы с общей памятью (мультипроцессоры)
Системы

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

Слайд 8Практикум по технологиям параллельного программирования
Системы с общей памятью
Возможные подходы
новые алгоритмические языки

(OCCAM,…),
существующие алгоритмические языки, расширенные набором операторов для параллельных вычислений (HPF,…),
использование внеязыковых средств (директивы, комментарии, ...) или библиотек

Слайд 9Практикум по технологиям параллельного программирования
Технология OpenMP
Вилочный (fork-join) –пульсирующий - параллелизм -

выделение в программе параллельных областей

Слайд 10Практикум по технологиям параллельного программирования
Алгоритм 1.2


Слайд 11Практикум по технологиям параллельного программирования
Результаты экспериментов


Слайд 12Практикум по технологиям параллельного программирования
Оценка подхода
(+) Алгоритм обеспечивает решение задачи
(+) Может

быть задействовано до N2 процессов
(-) Чрезмерная синхронизация
(-) Слабая загрузка процессоров
⇒ Низкая эффективность


Слайд 13Практикум по технологиям параллельного программирования
Проблема: блокировки при взаимоисключении


Слайд 14Практикум по технологиям параллельного программирования
Алгоритм 1.3


Слайд 15Практикум по технологиям параллельного программирования
Результаты экспериментов


Слайд 16Практикум по технологиям параллельного программирования
Оценка подхода
(+) Существенное снижение обращений к общей

переменной
(-) Снижение показателя максимально возможного параллелизма до N
⇒ Лучшие показатели ускорения

Слайд 17Практикум по технологиям параллельного программирования
Проблема: Неоднозначность вычислений
!!! Результаты различаются от запуска

к запуску – метод хаотической релаксации (chaotic relaxation)

Причина: состязание потоков (race condition)

Слайд 18Практикум по технологиям параллельного программирования
Состязание потоков
Выход: захват и блокировка используемых строк


Слайд 19Практикум по технологиям параллельного программирования
Проблема: взаимоблокировка
Тупик


Слайд 20Практикум по технологиям параллельного программирования
Разрешение тупиков
Решение: соблюдение строгой последовательности блокировки строк
!!!

Однозначность вычислений не обеспечивается

Слайд 21Практикум по технологиям параллельного программирования
Метод Гаусса-Якоби
Разделение места хранения результатов на предыдущей

и текущей итерации

Слайд 22Практикум по технологиям параллельного программирования
Алгоритм 1.4


Слайд 23Практикум по технологиям параллельного программирования
Результаты экспериментов


Слайд 24Практикум по технологиям параллельного программирования
Оценка подхода
(+) Однозначность вычислений
(-) Использование дополнительной памяти
(-)

Меньшая скорость сходимости
⇒ Возможность повышения эффективности расчетов


Слайд 25Практикум по технологиям параллельного программирования
Схема чередования обработки строк


Слайд 26Практикум по технологиям параллельного программирования
Оценка подхода
(+/-) Однозначность вычислений, но не совпадение

результатов последовательных расчетов
(-) Меньшая скорость сходимости
⇒ Возможность повышения эффективности расчетов


Слайд 27Практикум по технологиям параллельного программирования
Волновые схемы параллельных вычислений…
Выполнение только тех вычислительных

действий, которые выполняет последовательный метод и, как результат, получение совпадающих результатов приводит к порождению волновой схемы расчетов (wavefront or hyperplane methods)

Слайд 28Практикум по технологиям параллельного программирования
Волновые схемы параллельных вычислений


Слайд 29Практикум по технологиям параллельного программирования
Алгоритм 1.5


Слайд 30Практикум по технологиям параллельного программирования
Алгоритм 1.5'


Слайд 31Практикум по технологиям параллельного программирования
Результаты экспериментов


Слайд 32Практикум по технологиям параллельного программирования
Оценка подхода
(-) Неэффективность использования кэша

⇒ Возможность повышения эффективности расчетов


Слайд 33Практикум по технологиям параллельного программирования
Блочное представление данных


Слайд 34Практикум по технологиям параллельного программирования
Алгоритм 1.6


Слайд 35Практикум по технологиям параллельного программирования
Результаты экспериментов


Слайд 36Практикум по технологиям параллельного программирования
Оценка подхода
(+) Возможность тонкой подстройки под имеющийся

кэш
(-) Возможность простоев процессоров
⇒ Возможность повышения эффективности расчетов


Слайд 37Практикум по технологиям параллельного программирования
Балансировка вычислительной нагрузки
Очередь заданий


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

памятью

Разделение данных
Обмен сообщениями


Слайд 39Практикум по технологиям параллельного программирования
Ленточная схема разделения данных


Слайд 40Практикум по технологиям параллельного программирования
Схема алгоритма


Слайд 41Практикум по технологиям параллельного программирования
Схема обмена данными между процессорами
!!! Последовательное выполнение

операций передачи данных

Слайд 42Практикум по технологиям параллельного программирования
Параллельное выполнение операций передачи данных


Слайд 43Практикум по технологиям параллельного программирования
Коллективные операции


Слайд 44Практикум по технологиям параллельного программирования
Результаты экспериментов


Слайд 45Практикум по технологиям параллельного программирования
Оценка подхода
(-) Результаты расчетов отличаются от результатов

последовательных вычислений

Слайд 46Практикум по технологиям параллельного программирования
Волновые вычисления при ленточной схеме разделения данных


Слайд 47Практикум по технологиям параллельного программирования
Блочная схема разделения данных…


Слайд 48Практикум по технологиям параллельного программирования
Блочная схема разделения данных


Слайд 49Практикум по технологиям параллельного программирования
Вычислительный конвейер (множественная волна)


Слайд 50Практикум по технологиям параллельного программирования
Операции передачи данных


Слайд 51Практикум по технологиям параллельного программирования
Лабораторный практикум…
Практикум состоит из 2-х частей:
Практикум для

разработки параллельных программ с использованием технологии OpenMP для вычислительных систем с общей памятью,
Практикум для разработки параллельных программ с использованием технологии MPI для вычислительных систем с распределенной памятью при использовании ленточной и блочной схемы распределения данных.
В качестве задания повышенной сложности может быть выполнена разработка параллельной программы с совместным использованием технологий MPI и OpenMP.

Слайд 52Практикум по технологиям параллельного программирования
Лабораторный практикум…
Выполнение заданий практикума рекомендуется проводить группами

из 2 человек. Первоначально все обучаемые, выбравшие то или иное задание, выполняют разработку базового варианта работы. Далее после обсуждения результатов разработки каждая группа выбирает индивидуальный вариант постановки задания для продолжения работ.

Слайд 53Практикум по технологиям параллельного программирования
Лабораторный практикум…
Практическое занятие 1: Разработка параллельных программ

с использованием OpenMP
Необходимый теоретический материал
Разделы 2 и 3 лекционного материала
Задание 1: Организация параллельных вычислений при использовании ленточной схемы разделения данных
Разделение вариантов может осуществляться по реализуемым методам и схемам организации вычислений:
- Метод: Метод Гаусса-Зейделя, метод Гаусса-Якоби,
- Схема вычислений: прямая схема, чередование полос, шахматная схема, диагональная волна
Общее количество вариантов заданий – 5 (для метода Гаусса-Якоби оправдано использование только прямой схемы вычислений).

Слайд 54Практикум по технологиям параллельного программирования
Лабораторный практикум…
Задание 2: Организация параллельных вычислений при

использовании блочной схемы разделения данных
Разделение вариантов может осуществляться по реализуемым методам, схемам организации вычислений и способам формирования блоков:
- Метод: Метод Гаусса-Зейделя, метод Гаусса-Якоби,
- Схема вычислений: неволновая схема, множественная волна,
- Способ формирования блоков: блоки фиксированного размера, блоки задаваемого размера.
Общее количество вариантов заданий – 6 (задания, предполагающие использование блоков задаваемого размера, отличаются более высокой трудоемкостью для выполнения).

Слайд 55Практикум по технологиям параллельного программирования
Лабораторный практикум…
Участники школы выполняют одно из представленных

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

Слайд 56Практикум по технологиям параллельного программирования
Лабораторный практикум…
Практическое занятие 2: Разработка параллельных программ

с использованием MPI
Необходимый теоретический материал
Разделы 2 и 4 лекционного материала.
Задание 1: Организация параллельных вычислений при использовании ленточной схемы разделения данных
Разделение вариантов может осуществляться по реализуемым методам, используемым режимам передачи данных, схемам организации вычислений:
- Метод: Метод Гаусса-Зейделя, метод Гаусса-Якоби,
- Режим передачи данных: стандартный, асинхронный, буферизуемый,
- Схема вычислений: неволновая схема, прямая волна, диагональная волна.
Общее количество вариантов заданий –18.

Слайд 57Практикум по технологиям параллельного программирования
Лабораторный практикум
Задание 2: Организация параллельных вычислений при

использовании блочной схемы разделения данных
Разделение вариантов может осуществляться по реализуемым методам, используемым режимам передачи данных, схемам организации вычислений:
- Метод: Метод Гаусса-Зейделя, метод Гаусса-Якоби,
- Режим передачи данных: стандартный, асинхронный, буферизуемый,
- Схема вычислений: неволновая схема, множественная волна
Общее количество вариантов заданий –9.

Слайд 58Практикум по технологиям параллельного программирования
Литература
1. Технологии параллельного программирования. / Материалы Зимней школы

по параллельному программированию. – Н.Новгород: Нижегородский университет, Интел, 2004.
2. Гергель В.П., Стронгин Р.Г. Основы параллельных вычислений для многопроцессорных вычислительных систем. - Н.Новгород, ННГУ, 2001.
3. Информационные материалы по MPI (http://www.mpi-forum.org)
4. Информационные материалы по OpenMP (http://www.openmp.org)

Слайд 59Практикум по технологиям параллельного программирования
Контакты
Нижегородский государственный университет
Факультет вычислительной математики и кибернетики
Кафедра

математического обеспечения ЭВМ
gergel@unn.ac.ru
www.unn.ac.ru
www.software.unn.ac.ru
www.software.unn.ac.ru/mo_evm
www.itlab.unn.ru

Слайд 60Практикум по технологиям параллельного программирования
Вопросы,
Замечания,
Дополнения,…


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика