Obliczenia równoległe i rozproszone w - …fluid.ippt.gov.pl/newippt/grafen/MATLAB_Parallel...2 ®...

48
® ® Obliczenia równolegle i rozproszone w środowisku MATLAB Milosz Augustyński ONT Kraków

Transcript of Obliczenia równoległe i rozproszone w - …fluid.ippt.gov.pl/newippt/grafen/MATLAB_Parallel...2 ®...

® ®

Obliczenia równoległe i rozproszone w środowisku MATLAB

Miłosz Augusty ński

ONT Kraków

2

® ®

Agenda

� Wprowadzenie – potrzeba obliczeń rozproszonych� Jak tworzyć „szybki” kod w MATLAB?� Przyspieszanie obliczeń z wykorzystaniem Parallel

Computing Toolbox – przykłady� Skalowanie problemu – uruchamianie obliczeń na klastrze

(MATLAB Distributed Computing Server)� Obliczenia z wykorzystaniem GPU� MATLAB Coder – konwersja m-kodu do C

3

® ®

Potrzeba oblicze ń rozproszonych

ProblemWiele problemów obliczeniowych charakteryzuje się bardzo dużą złożonością oraz/lub wymaga pracy nad dużymi zestawami danych

� długi czas obliczeń� niewystarczające zasoby sprzętowe

(pamięć)

np. symulacja MonteCarlo, optymalizacja portfolio, sekwencjonowanie DNA

4

® ®

Potrzeba oblicze ń rozproszonych cd.

Duże zbiory danych

Problem

Długi czas wykonywania

oblicze ń oczekiwanie

Rozdzielenie danych na osobne komputery (procesory), które pracuj ą równolegle

Rozwi ązanieUruchomienie podobnych zada ń(tasks) na niezale żnych procesorachrównolegle

Redukcja

=>

5

® ®

Zadania równoległe

Time Time

Pro

cess

es

6

® ®

Rozproszone dane

11 26 41

12 27 42

13 28 43

14 29 44

15 30 45

16 31 46

17 32 47

17 33 48

19 34 49

20 35 50

21 36 51

22 37 52

11 26 41

12 27 42

13 28 43

14 29 44

15 30 45

16 31 46

17 32 47

17 33 48

19 34 49

20 35 50

21 36 51

22 37 52

7

® ®

Tworzenie szybkiego kodu

� Alokacja Pamięci

� Ograniczenie stosowania pętli na rzecz operacji macierzowych

� Analiza kodu w MATAB profiler

8

® ®

Worker Worker

Worker

Worker

WorkerWorker

Worker

WorkerTOOLBOXES

BLOCKSETS

Sposoby wykorzystania MATLABa do realizacji oblicze ń równoległych

9

® ®

Sposoby wykorzystania MATLABa do realizacji oblicze ń równoległych

Możliwo ść kontroli

Minimalna

Średnia

Zaawansowana

Stopie ń trudno ści

żaden

umiarkowany

wysoki

10

® ®

Wbudowane w moduły wsparcie dla oblicze ń równoległych i rozproszonych

Worker

Worker

Worker

WorkerWorker

Worker

WorkerTOOLBOXES

BLOCKSETS

11

® ®

Wbudowane w moduły wsparcie dla oblicze ń równoległych i rozproszonych

Optimization Toolbox 5.0 Solve standard and large-scale optimization problem s

Constrained nonlinear solvers: fmincon, fgoalattain, fminimax

Global Optimization Toolbox 3.0 Solve multiple maxima, multiple minima, and nonsmoo th optimization problems

Genetic Algorithm, Pattern Search, MultiStart

Simulink Design Optimization 1.1 Estimate and optimize Simulink model parameters

Automates running Simulink optimization problems in parallel environment

Model-Based Calibration Toolbox 4.0 Calibrate complex powertrain systems

Speed up model calibration and table optimization

Others

12

® ®

Programming Parallel Applications

Moduły posiadające wbudowane wsparcie do obliczeń równoległych

▪ Optimization Toolbox▪ Global OptimizationToolbox

▪ SystemTest▪ Statistics Toolbox▪ Simulink Design Optimization

Stopie ń trudno ści

żaden

umiarkowany

wysoki

13

® ®

Platforma sprz ętowa wykorzystana podczas prezentacji

� Procesor 4-rdzeniowy AMD Phenom II X4 840

� GPU NVIDIA GeForce GTX 560 Ti

� Pamięć operacyjna 4GB

14

® ®

Przykład 1

� Minimalizacja czasochłonnej optymalizacji FMINCON

demoParallelOptim1.m� Serial FMINCON optimization takes 27.2204 seconds.

� Parallel FMINCON optimization takes 17.0095seconds.

15

® ®

Przykład 2 : Optymalizacja ustawienia wie ż

� Ustalenie optymalnego rozstawu nadajników

� Maksymalne pokrycie

� Minimalny nakładanie

16

® ®

Podsumowanie

� Wykorzystanie wbudowanego w Parallel Computing Toolboxwsparcia dlaOptimization Toolbox

� Skorzystanie z określonego zbioru workerów

� Optymalizacja z użyciem fmincon

17

® ®

Zestawienie wyników

PhoneTowerScript.m

� Serial time 25.006119 seconds

� Parallel time 11.298466 seconds

18

® ®

Program owanie równoległe

Moduły posiadające wbudowane wsparcie do obliczeń równoległych

Stopie ń trudno ści

żaden

umiarkowany

wysoki

Proste funkcje do wykorzystania w skryptach MATLABa:

parfor, batch

19

® ®

Task 1 Task 2 Task 3 Task 4

Task Parallel Applications

Time Time

TOOLBOXES

BLOCKSETS

Worker

Worker

Worker

Worker

Task 1 Task 2 Task 3 Task 4

20

® ®

normalElapsed time is 20.470524 seconds.

parallelElapsed time is 11.325069 seconds.

Rozwi ązanie równania ró żniczkowego 2-go stopnia, dla ró żnych parametrów

ONTparamSweep.m

Przykład 3

}

{ { 0,...2,1,...2,1

5

=++ xkxbxm &&&

21

® ®

Zestawienie wyników

ONTparamSweep.m

� Serial time 18.240401 seconds

� Parallel time 4.691656 seconds

22

® ®

Mechanizm p ętli parfor

a = zeros(10, 1)

parfor i = 1:10

a(i) = i;

end

aa(i) = i;

a(i) = i;

a(i) = i;

a(i) = i;

WorkerWorker

WorkerWorker

1 2 3 4 5 6 7 8 9 101 2 3 4 5 6 7 8 9 10

23

® ®

Sposoby pracy z Parallel Computing Toolbox

� Interaktywna praca� Idealne do prototypowania

� Uruchamianie obliczeń w tle (Scheduling)� Umożliwia wykonanie pracy lokalnie lub na kastrze obliczeniowym� Umożliwia dostęp do większych zasobów� Nie „zamraża” Matlaba

24

® ®

Scheduling Work

TOOLBOXES

BLOCKSETS

Scheduler

Work

Result

Worker

Worker

Worker

Worker

25

® ®

Przykład 4 : Schedule Processing

� Przekazanie pracy do grupy lokalnych workerów

� „Odebranie” wyników po zakończeniu analizy

� Wyświetlenie wyników w MATLAB

0 5 10 15 20 25-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

1.2

Time (s)

Displacement (x)

m = 5, b = 2, k = 2

m = 5, b = 5, k = 5

0

2

4

6 12

34

5

0.5

1

1.5

2

2.5

Stiffness (k)Damping (b)

Pea

k D

ispl

ace

me

nt (x

)

batchODE.m

26

® ®

Task-Parallel Workflows

� parfor

� Wiele niezależnych interacji� Łatwość mieszania „zwykłego” i „równoległego” kodu� Praca

� Interaktywna - matlabpool

� „W tle” - batch

� jobs/tasks

� Niezależne zadania (niekoniecznie iteracje) dla każdego workera. Dostosowywanie sposobu współpracy workerów.

� Workflow � Always scheduled

27

® ®

Program owanie równoległe

Moduły posiadające wbudowane wsparcie do obliczeń równoległych

Stopie ń trudno ści

żaden

umiarkowany

wysoki

Proste funkcje do wykorzystania w skryptach MATLABa:

parfor, batch

Zaawansowana konfiguracja:

job/tasks

28

® ®

• Rozwi ązanie równania ró żniczkowego 2-go stopnia z wykorzystaniem ró żnych solverów

Przykład 5

0=++ kxxbxm &&&

ode45, ode23 …

29

® ®

MATLAB wspiera obliczenia równoległe i rozproszone dla sytuacji…

Długotrwałe obliczenia

� Wiele niezależnych interacji

� Zadania do realizacji

Duże zbiory danych

parfor i = 1 : n

% do something with i

end

Task 1 Task 2 Task 3 Task 4

11 26 41

12 27 42

13 28 43

14 29 44

15 30 45

16 31 46

17 32 47

17 33 48

19 34 49

20 35 50

21 36 51

22 37 52

Task-Parallel Data-Parallel

30

® ®

TOOLBOXES

BLOCKSETS

Distributed ArrayLives on the Cluster

Remotely Manipulate Array from Desktop

11 26 41

12 27 42

13 28 43

14 29 44

15 30 45

16 31 46

17 32 47

17 33 48

19 34 49

20 35 50

21 36 51

22 37 52

Duże zbiory danych – rozdzielenie danych pomi ędzy poszczególnych workerów

31

® ®

Enhanced MATLAB Math Functions That Operate on Distributed Arrays

32

® ®

Skalowanie problemu do klastra obliczeniowego

Worker

Worker

Worker

WorkerWorker

Worker

WorkerTOOLBOXES

BLOCKSETS

Scheduler

33

® ®

User’s Desktop

Parallel ComputingToolbox

Compute Cluster

MATLAB DistributedComputing Server

MATLAB Workers

Parallel Computing with MATLAB

34

® ®

Otwarte API dla pozostałych

Support for Schedulers

Wsparcie bezpo średnie

TORQUE

35

® ®

Obsługa GPU

Worker

Worker

Worker

WorkerWorker

Worker

WorkerTOOLBOXES

BLOCKSETS

36

® ®

Core 1

Core 3 Core 4

Core 2

Cache

Nowe mo żliwo ści zwi ększenia wydajno ści oblicze ń

Wykorzystanie wielu rdzeni (CPUs) Wykorzystanie GPUs

Device Memory

37

® ®

Możliwo ści pracy z GPUs

1) Wykorzystanie wbudowanych funkcji MATLABA

2) Wywoływanie własnych m-funkcji uruchamianych na GPU

3) Uruchamianie w MATLABniskopoziomowych funkcji CUDA

Łatw

ość

uży

cia

Stopie

ń kontroli

38

® ®

Zestawienie wyników

GPUfft.m

� CPU time 2.1965 seconds

� GPU time 0.4630 seconds

39

® ®

Zwiększenie wydajno ści obliczeniowej dzięki Parallel Computing Toolbox

Metoda PrzykładMATLAB Workers

Execution Target

matlabpool Parfor Wymagane CPU

tasks createTask Wymaganie CPU

Obliczenia GPU GPUArray -NVIDIA GPU

(Compute Capability 1.3)

40

® ®

Licencjonowanie

Worker

Worker

Worker

WorkerWorker

Worker

WorkerTOOLBOXES

BLOCKSETS

41

® ®

Parallel Computing ToolboxLicencjonowanie - jak w przypadku innych modułów MATL ABa

� Licencje: indywidualne, sieciowe� Wymagany MATLAB� Do 8 workerów bez MDCS (wieloprocesorowe komputery)

Worker

SchedulerWorker

Worker

ParallelComputing

Toolbox

MATLAB

Simulink

Blocksets

Toolboxes

Task

Result

Job

Result

MATLAB DistributedComputing Server

42

® ®

Parallel Computing ToolboxPodsumowanie

� Trzy funkcje� Obliczenia równoległe na maszynie lokalnej (do 8 procesorów)� Obliczenia z wykorzystaniem karty grafiki (NVIDIA CUDA)� Połączenie z klastrem obliczeniowym

� Możliwość pobrania wersji trial oprogramowania� Użytkownicy – za pośrednictwem strony www.mathworks.com� Za pośrednictwem firmy ONT (www.ont.com.pl)

43

® ®

MATLAB Distributed Computing ServerOsobna licencja na workery

� Wymagany jeden worker dla każdej maszyny w klastrze � sprzedawane w pakietach po 8, 16, 32, 64, 96, 128, itp.� scheduler nie jest objęty managerem licencji

� Zezwala na instalację wszystkich modułów

� Licencjonowanie dynamiczne� MDCS pozwala na dostęp do modułów

z licencji użytkownika (maszyna klienta)� MDCS nie pobiera klucza z licencji

użytkownikaParallel

ComputingToolbox

MATLAB

Simulink

Blocksets

Toolboxes

44

® ®

MATLAB Coder v2.0Nowy produkt, Sprawdzona technologia

20042004• Embedded MATLAB Block w

Simulink

20072007• polecenie emlc w RTW

• Generacja kodu C z MATLAB

20112011• MATLAB Coder

45

® ®

Do czego mo żna wykorzysta ć Matlab Coder?

� Przyspieszenie kodu MATLABa

� Integracja kodu C z innym oprogramowaniem

� Prototypowanie aplikacji niezależnych

46

® ®

Zestawienie wyników

test_coder.m

� Czas wykonywania test1.m: 4.3393

� Czas wykonywania test1_mex.mexw64: 0.7442

Uwaga, pliki .mexw64 zostały wygenerowane na platformie 64 bit

47

® ®

Szkolenia

� MLBE – Wprowadzenie do programu MATLAB (2 dni)� MLPC – Obliczenia równoległe i rozproszone w

MATLABie (2 dni)Table of Contents TOC - 1

©20

10 MathW

orks, Inc.

Parallel Computing with MATLAB®

Table of Contents

Table of Contents TOC - 1

©20

10 MathW

orks, Inc.

Parallel Computing with MATLAB®

Table of Contents

48

® ®

www.ont.com.pl