Obliczenia równoległe i rozproszone w - …fluid.ippt.gov.pl/newippt/grafen/MATLAB_Parallel...2 ®...
Transcript of Obliczenia równoległe i rozproszone w - …fluid.ippt.gov.pl/newippt/grafen/MATLAB_Parallel...2 ®...
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
=>
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
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
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
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
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)
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