Московский государственный университет им....

38
Московский государственный университет им. М.В.Ломоносова Введение П а р а л л е л ь н ы е м е т о П а р а л л е л ь н ы е м е т о д ы д ы и и а л г о р и т м ы а л г о р и т м ы Якобовский Михаил Владимирович д.ф.-м.н. Институт математического моделирования РАН, Москва

Upload: guy-clements

Post on 30-Dec-2015

58 views

Category:

Documents


0 download

DESCRIPTION

Московский государственный университет им. М.В.Ломоносова. П а р а л л е л ь н ы е м е т о д ы и а л г о р и т м ы. Введение. Якобовский Михаил Владимирович д.ф.-м.н. Институт математического моделирования РАН, Москва. Что происходит?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Московский государственный университет им. М.В.Ломоносова

Московский государственный университет им. М.В.Ломоносова

Введение

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

ии а л г о р и т м ы а л г о р и т м ы

Якобовский Михаил Владимировичд.ф.-м.н.Институт математического моделирования РАН, Москва

Page 2: Московский государственный университет им. М.В.Ломоносова

Что происходит?

Вычислительная мощность суперкомпьютеров быстро растет

Примеров успешного полноценного использования суперкомпьютеров немного

В среднем вычислительная мощность суперкомпьютеров используется не более чем на несколько процентов

2

Page 3: Московский государственный университет им. М.В.Ломоносова

Кто виноват?

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

Современные алгоритмы не могут автоматически использовать такую «распределенную» мощность

3

Page 4: Московский государственный университет им. М.В.Ломоносова

Что делать?

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

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

4

Page 5: Московский государственный университет им. М.В.Ломоносова

Кризис эффективности

Вычислительная мощность суперкомпьютеров велика, но: – Она образована суммой мощностей множества

исполнительных устройств

На протяжении ряда лет увеличение производительность компьютера автоматически означало снижение времени работы существующих программ. Теперь это не так:– Последовательные программы не могут

работать на суперкомпьютерах быстрее

5

Page 6: Московский государственный университет им. М.В.Ломоносова

Кризис эффективности

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

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

Необходимо знать существующие и развивать новые методы решения задач на многопроцессорных системах

6

Page 7: Московский государственный университет им. М.В.Ломоносова

Уточнение круга рассматриваемых систем

Системы на основе объединенных сетью типовых вычислительных узлов – системы с распределенной оперативной памятью

Системы с доступом всех процессоров к общей оперативной памяти

Графические ускорители ПЛИС Нейрокомпьютеры Другие …

7

Page 8: Московский государственный университет им. М.В.Ломоносова

Многопроцессорные системы с распределенной памятью

Процессор 1 Процессор 2 Процессор 3

ЛокальнаяПамять 1

ЛокальнаяПамять 2

ЛокальнаяПамять 3

Router2

Router1

P-Nodes

IO-Nodes

Network концентраторы

Процессорные узлы

8

Page 9: Московский государственный университет им. М.В.Ломоносова

Многопроцессорные системы с общей памятью

Процессор 1 Процессор 2 Процессор 3

Общая оперативная память

9

Page 10: Московский государственный университет им. М.В.Ломоносова

Уточнение круга рассматриваемых алгоритмов

Слабо взаимодействующие последовательные процессы

10

Page 11: Московский государственный университет им. М.В.Ломоносова

При запуске указываем число требуемых процессоров Np и название программы

На выделенных для расчета узлах запускается Np копий указанной программы

– Например, на двух узлах запущены три копии программы. Копия программы с номером 1 не имеет непосредственного доступа к оперативной памяти копий 0 и 2:

Каждая копия программы получает два значения: – Np

– rank из диапазона [0 … Np-1] Любые две копии программы могут непосредственно обмениваться

данными с помощью функций передачи сообщений

Модель программы на распределенной памяти

0 1 2

11

Page 12: Московский государственный университет им. М.В.Ломоносова

Работа начинается с запуска одной программы При необходимости программа порождает новые

процессы, эти процессы:– Обладают собственными локальными переменными– Имеют доступ к общим глобальным переменнымint a_global; main нить1 нить2

main()

{

int b1_local; запуск нити1

} запуск нити2

fun()

{

int b2_local; ожидание

} окончания работы

Модель программы на общей памяти

12

Page 13: Московский государственный университет им. М.В.Ломоносова

Свойства канала передачи данных

T(n)=n*Tбайта+ Tлатентности

Gbit Ethernet

Infiniband

13

Page 14: Московский государственный университет им. М.В.Ломоносова

Свойства канала передачи данных

T(n)=n*Tбайта+ Tлатентности

Gbit Ethernet

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

14

Page 15: Московский государственный университет им. М.В.Ломоносова

Свойства канала передачи данных

T(n)=n*Tбайта+ Tлатентности

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

Infiniband

15

Page 16: Московский государственный университет им. М.В.Ломоносова

Синхронный методSend(адрес данных, размер, номер процессора)

Recv(адрес данных, размер, номер процессора)

Асинхронные методы– Небуферизованный

ASend(адрес данных, размер, номер процессора)

ARecv(адрес данных, размер, номер процессора)

ASync

– Буферизованный

ABSend(адрес данных, размер, номер процессора)

Методы передачи данных

16

Page 17: Московский государственный университет им. М.В.Ломоносова

A=3 Send(&A) A=5

Синхронный

B=4 Recv(&B) Print(B)

SendRecv

Print(B)A=5

B=4A=3

Результат

3

17

Page 18: Московский государственный университет им. М.В.Ломоносова

A=3 АSend(&A) A=5

Асинхронные

B=4 АRecv(&B) Print(B)

Send

ASend

Recv

ARecv

Print(B)A=5

B=4

Результат

3 ? 4 ? 5

A=3

18

Page 19: Московский государственный университет им. М.В.Ломоносова

A=3 АSend(&A) Async() A=5

Асинхронные

B=4 АRecv(&B) Print(B)

ASync

Send

ASend

Recv

ARecv

Print(B)

A=5

B=4

Результат

3 ? 4

A=3

19

Page 20: Московский государственный университет им. М.В.Ломоносова

A=3 АSend(&A) Async() A=5

Асинхронные

B=4 АRecv(&B) Async() Print(B)

Результат

3

ASync

SendASend

ASyncRecv

ARecv

Print(B)A=5

A=3B=4

20

Page 21: Московский государственный университет им. М.В.Ломоносова

A=3 АBSend(&A) A=5

Асинхронные буферизованные

B=4 АRecv(&B) Async() Print(B)

Результат 3

Send(&buf)

ABSend

ASyncRecv

ARecv

Print(B)

A=5

buf=A

A=3

B=4

21

Page 22: Московский государственный университет им. М.В.Ломоносова

Целочисленная неотрицательная переменная Две атомарные операции, не считая инициализации V(S)

– Увеличивает значение S на 1

P(S)– Если S положительно, уменьшает S на 1– Иначе ждет, пока S не станет больше 0

Семафор

Языки програмирования. Редактор Ф.Женюи. Перевод с англ В.П.Кузнецова. Под ред. В.М.Курочкина. М:."Мир", 1972 Э. Дейкстра.

Взаимодействие последовательных процессов. http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/index.html

22

Page 23: Московский государственный университет им. М.В.Ломоносова

ускорение

параллельного

алгоритма

S(p)=T(1)/T(p)

Ускорение и эффективность параллельных алгоритмов

Ускорение параллельного алгоритма относительно

наилучшего последовательного

S*(p)=T * /T(p)

E *(p)=S *(p)/p

эффективность

использования процессорной мощности

E(p)=S(p)/p

23

Page 24: Московский государственный университет им. М.В.Ломоносова

Да:– Плохой последовательный алгоритма– Влияние аппаратных особенностей вычислительной

системы

Может ли быть S(p)>p ?

24

Page 25: Московский государственный университет им. М.В.Ломоносова

Да– Если первый алгоритм позволяет использовать больше

процессоров, чем второй.

Самый эффективный алгоритм – использующий один (1) процессор. – Его эффективность по определению равна 100%, но он

не всегда самый быстрый.

Может ли неэффективный алгоритм работать быстрее эффективного?

25

Page 26: Московский государственный университет им. М.В.Ломоносова

Все элементарные операции (+ - * / )

выполняются за время с Все операции выполняются точно, результат не

зависит от порядка их выполнения

Определить сумму конечного ряда

26

Page 27: Московский государственный университет им. М.В.Ломоносова

S=1;

a=1;

for(i=1;i<= n;i++)

{

a=a*x/i;

S=S+a;

}

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

T1= 3nс

27

Page 28: Московский государственный университет им. М.В.Ломоносова

Параллельный алгоритм

Вычислить для всех i =1,…,n : xi

Вычислить для всех i =1,…,n : i!

Вычислить для всех i =1,…,n : ai =

Вычислить сумму всех членов ai

28

Page 29: Московский государственный университет им. М.В.Ломоносова

Для вычисления xi воспользуемся методом бинарного умножения

x

1 x2

2 x3 x4

3 x5 x6 x7 x8

4 x9 x10 x11 x12 x13 x14 x15 x16

xi

29

Page 30: Московский государственный университет им. М.В.Ломоносова

Для вычисления i! воспользуемся

аналогичным методом

4 12 34 56 78910 1112 1314 1516=16!

3 12 34 56 78 910 1112 1314 1516

2 12 34 56 78 910 1112 1314 1516

1 12 34 56 78 910 1112 1314 1516

i!

30

Page 31: Московский государственный университет им. М.В.Ломоносова

Для вычисления i! воспользуемся

аналогичным методом

4 12 34 56 78910 1112 =12!

3 12 34 56 78 910 1112 1314 1516

2 12 34 56 78 910 1112 1314 1516

1 12 34 56 78 910 1112 1314 1516

12!

31

Page 32: Московский государственный университет им. М.В.Ломоносова

Для вычисления i! воспользуемся

аналогичным методом

4 12 34 56 78910 1112 1314=14!

3 12 34 56 78 910 1112 1314

2 12 34 56 78 910 1112

1 12 34 56 78 910 1112 1314 1516

14!

32

Page 33: Московский государственный университет им. М.В.Ломоносова

Параллельный алгоритм

Вычислить все xi :

Вычислить все i! : Вычислить все ai : - надо n

процессоров

Вычислить сумму всех ai :a1 a2 a3 a4 a5 a6 a7 a8 a1+a2 a3+a4 a5+a6 a7+a8

a1+a2+a3+a4 a5+a6+a7+a8

a1+a2+a3+a4+a5+a6+a7+a8

2

33

Page 34: Московский государственный университет им. М.В.Ломоносова

p=n

Ускорение и эффективность при p=n

21.5

1.5

34

Page 35: Московский государственный университет им. М.В.Ломоносова

Определены понятия ускорения и эффективности параллельных алгоритмов

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

Представлен алгоритм, обладающий низкой эффективностью, но высоким быстродействием

Заключение

35

Page 36: Московский государственный университет им. М.В.Ломоносова

Литература…

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

Грегори Р. Эндрюс - Основы многопоточного, параллельного и распределенного программирования. "Вильямс ", 2003

Роберт Седжвик - Фундаментальные алгоритмы на C. Части 1 - 5. Анализ. Структуры данных. Сортировка. Поиск. Алгоритмы на графах

Языки программирования. Редактор Ф.Женюи. Перевод с англ. В.П.Кузнецова. Под ред. В.М.Курочкина. М:."Мир", 1972 Э. Дейкстра. Взаимодействие последовательных процессов.

http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/index.html Дональд Э. Кнут Искусство программирования

36

Page 37: Московский государственный университет им. М.В.Ломоносова

Литература…

Учебные курсы Интернет Университета Информационных технологий Гергель В.П. Теория и практика параллельных вычислений. —

http://www.intuit.ru/department/calculate/paralltp/

Лекции в форме видео-конференций Гергель В.П. Основы параллельных вычислений. —

http://www.hpcu.ru/courses/15/ Немнюгин С.А. Основы параллельного программирования с использованием

MPI . — http://www.hpcu.ru/courses/14/ Крюков В.А., Бахтин В.А. Параллельное программирование с OpenMP . —

http://www.hpcu.ru/courses/16/

Дополнительные учебные курсы: Воеводин В.В. Вычислительная математика и структура алгоритмов. —

http://www.intuit.ru/department/calculate/calcalgo/

37

Page 38: Московский государственный университет им. М.В.Ломоносова

Литература

Ресурсы Internet

http://parallel.ru http://top500.org http://supercomputers.ru

38