'

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

Понравилась презентация – покажи это...





Слайд 0

Нижегородский государственный университет им. Н.И. Лобачевского Зимняя школа по параллельному программированию Практикум по технологиям параллельного программирования (на примере учебно-исследовательской задачи) Гергель В.П., проф., д.т.н., кафедра МО ЭВМ ВМК ННГУ


Слайд 1

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


Слайд 2

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


Слайд 3

4-60 Практикум по технологиям параллельного программирования Итерационные схемы Метод Гаусса-Зейделя Трудоемкость T = kmN2 N - число узлов по каждой координате m - число операций на узел k - количество итераций


Слайд 4

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


Слайд 5

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


Слайд 6

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


Слайд 7

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


Слайд 8

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


Слайд 9

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


Слайд 10

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


Слайд 11

12-60 Практикум по технологиям параллельного программирования Оценка подхода (+) Алгоритм обеспечивает решение задачи (+) Может быть задействовано до N2 процессов (-) Чрезмерная синхронизация (-) Слабая загрузка процессоров ? Низкая эффективность


Слайд 12

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


Слайд 13

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


Слайд 14

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


Слайд 15

16-60 Практикум по технологиям параллельного программирования Оценка подхода (+) Существенное снижение обращений к общей переменной (-) Снижение показателя максимально возможного параллелизма до N ? Лучшие показатели ускорения


Слайд 16

17-60 Практикум по технологиям параллельного программирования Проблема: Неоднозначность вычислений !!! Результаты различаются от запуска к запуску – метод хаотической релаксации (chaotic relaxation) Причина: состязание потоков (race condition)


Слайд 17

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


Слайд 18

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


Слайд 19

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


Слайд 20

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


Слайд 21

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


Слайд 22

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


Слайд 23

24-60 Практикум по технологиям параллельного программирования Оценка подхода (+) Однозначность вычислений (-) Использование дополнительной памяти (-) Меньшая скорость сходимости ? Возможность повышения эффективности расчетов


Слайд 24

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


Слайд 25

26-60 Практикум по технологиям параллельного программирования Оценка подхода (+/-) Однозначность вычислений, но не совпадение результатов последовательных расчетов (-) Меньшая скорость сходимости ? Возможность повышения эффективности расчетов


Слайд 26

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


Слайд 27

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


Слайд 28

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


Слайд 29

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


Слайд 30

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


Слайд 31

32-60 Практикум по технологиям параллельного программирования Оценка подхода (-) Неэффективность использования кэша ? Возможность повышения эффективности расчетов


Слайд 32

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


Слайд 33

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


Слайд 34

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


Слайд 35

36-60 Практикум по технологиям параллельного программирования Оценка подхода (+) Возможность тонкой подстройки под имеющийся кэш (-) Возможность простоев процессоров ? Возможность повышения эффективности расчетов


Слайд 36

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


Слайд 37

38-60 Практикум по технологиям параллельного программирования Организация параллельных вычислений для систем с распределенной памятью Разделение данных Обмен сообщениями


Слайд 38

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


Слайд 39

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


Слайд 40

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


Слайд 41

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


Слайд 42

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


Слайд 43

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


Слайд 44

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


Слайд 45

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


Слайд 46

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


Слайд 47

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


Слайд 48

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


Слайд 49

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


Слайд 50

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


Слайд 51

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


Слайд 52

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


Слайд 53

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


Слайд 54

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


Слайд 55

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


Слайд 56

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


Слайд 57

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


Слайд 58

59-60 Практикум по технологиям параллельного программирования Контакты Нижегородский государственный университет Факультет вычислительной математики и кибернетики Кафедра математического обеспечения ЭВМ gergel@unn.ac.ru www.unn.ac.ru www.software.unn.ac.ru www.software.unn.ac.ru/mo_evm www.itlab.unn.ru


Слайд 59

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


×

HTML:





Ссылка: