You are on page 1of 45

OBLICZENIA RÓWNOLEGŁE

I ROZPROSZONE
Temat 2:

Projektowanie algorytmów równoległych -


wprowadzenie
Prowadzący: dr inż. Zbigniew TARAPATA
pok.225, 306, tel.: 83-95-04

e-mail: Zbigniew.Tarapata@wat.edu.pl

http:// tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/
Plan wykładu

Algorytmy i systemy równoległe –


wprowadzenie;
Algorytmy i systemy równoległe – własności;
Algorytmy i systemy równoległe – równoległość a
współbieżność, równoległość a rozproszoność;
Podstawowe pojęcia z teorii obliczeń
równoległych – graf AGS jako reprezentacja algorytmu
równoległego;
Podstawowe pojęcia z teorii obliczeń
równoległych – miary efektywności algorytmu
równoległego;

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 2


Metody zwiększania efektywności algorytmów -
przypomnienie

Wyróżniamy dwie zasadnicze metody zwiększania


efektywności algorytmów:

umiejętne zaprojektowanie algorytmu poprzez


stosowanie odpowiednich :
- struktur danych (listy, drzewa, kolejki, itp.),
- technik projektowania algorytmów (np. dziel i
zwyciężaj, zrównoleglanie, derekursywacja, itp.);

optymalizacja kodu programu realizującego


algorytm (zmniejszanie liczby pętli, zastępowanie operacji
arytmetycznych, eliminowanie zmiennych indeksowanych,
umieszczanie wartownika na końcu tablicy, przekazywanie parametrów
funkcji przez wskaźniki, itp.);

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 3


Umiejętne projektowanie algorytmów, przykład 1
- wykorzystanie odpowiednich struktur danych

Przykład (sortowanie, n – rozmiar tablicy)


Nazwa algorytmu α Złożoność Uwagi
- przez proste -- działa „w miejscu” (tzn. tylko
stała liczba elementów tablicy jest
wstawianie Wα(n) = Θ(n2) przechowywana poza tablicą
podczas działania algorytmu)
- bąbelkowe
-- dla małych tablic

przez scalanie Wα(n) = Θ(n log n) -- nie działa w miejscu


-- oparty o technikę „dziel i

zwyciężaj”

przez kopcowanie Wα(n) = O(n log n) - wykorzystywane są kopce


-

binarne
(heapsort)
Wα(n) = Θ(n2) -- działa „w miejscu”
-- dla dużych tablic

szybkie (quicksort) Aα(n) = Θ(n log n) -- oparty o technikę „dziel i

zwyciężaj”

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 4


Umiejętne projektowanie algorytmów, przykład 2
- wykorzystanie wielu procesorów = zrównoleglanie

Sortowanie bąbelkowe – wykorzystując N/2 (=4)


procesorów przyspieszamy porównywanie
parami elementów tablicy

93 87 74 65 57 45 33 27

1 87 93 65 74 45 57 27 33

2 87 65 93 45 74 27 57 33

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 5


Umiejętne projektowanie algorytmów, przykład 2, c.d.
- wykorzystanie wielu procesorów = zrównoleglanie

3 65 87 45 93 27 74 33 57

4 65 45 87 27 93 33 74 57

5 45 65 27 87 33 93 57 74

6 45 27 65 33 87 57 93 74

7 27 45 33 65 57 87 74 93

8 27 33 45 57 65 74 87 93

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 6


Umiejętne projektowanie algorytmów, przykład 2, c.d.
- wykorzystanie wielu procesorów = zrównoleglanie

WNIOSKI
Sekwencyjny algorytm sortowania bąbelkowego
tablicy N-elementowej potrzebuje w najgorszym
przypadku N2 czasu.
Równoległy algorytm sortowania bąbelkowego
tablicy N-elementowej potrzebuje w najgorszym
przypadku N czasu (pomijamy aspekty komunikacyjne między procesorami).

O(N2)
Sortowanie
O(N)
bąbelkowe –
Alg. alg. sekwencyjny
równoległy

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 7


Algorytmy i systemy równoległe - wprowadzenie

CZAS NA BLIŻSZE PRZYJRZENIE SIĘ ALGORYTMOM


RÓWNOLEGŁYM ☺
Używamy wielu procesorów do rozwiązania
pojedynczego zadania (ang. task).
ISTOTA:
Dzielimy zadanie na mniejsze „kawałki”;
Wykonujemy obliczenia na wielu
procesorach (np. każdy „kawałek”
obliczany jest na oddzielnym procesorze);
Koordynujemy zadania cząstkowe i ich
wyniki przekazujemy do zadania
nadrzędnego (koordynującego).

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 8


Algorytmy i systemy równoległe - wprowadzenie,
c.d.

4
Zadania

1 2 3 4
Procesory
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 9
Algorytmy i systemy równoległe – wprowadzenie,
c.d. - struktura systemu obliczeń równoległych

Interfejs
sieciowy

Pamięć

CPU

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 10


Algorytmy i systemy równoległe - własności
Korzystanie z systemów obliczeń równoległych nie
wyprowadza nas poza klasyfikację opartą na
złożoności obliczeniowej dla obliczeń
sekwencyjnych.
Używanie wielu procesorów przyspiesza (czasami ☺)
rozwiązywanie problemów lecz nie zmienia ich
przynależności do klasy złożoności obliczeniowej.
obliczeniowej
Jakich korzyści dostarcza zrównoleglenie obliczeń?
Mając algorytm działający w czasie O(N logN)
i log N procesorów, algorytm równoległy
będzie potrzebował co najmniej O(N) czasu.
Mając algorytm działający w czasie O(N3) i N
procesorów, algorytm równoległy będzie
potrzebował co najmniej O(N2) czasu.

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 11


Algorytmy i systemy równoległe – własności
Liczba procesorów

Liczba procesorów jest ograniczona sprzętowo;


Zazwyczaj liczba procesorów jest potęgą 2;
Wpływ dodawania nowych procesorów:
Program na jednym procesorze
Uruchamia się w czasie X;
Dodając dodatkowy procesor
Uruchamia się w czasie nie mniejszym niż X/2;
W praktyce: w czasie X/2 + ε z powodu
„kosztów zrównoleglenia”
W skrajnych przypadkach, dodanie procesorów
może nie pomóc, a wręcz spowolnić działanie
programu !!!

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 12


Algorytmy i systemy równoległe – własności
Koszty zrównoleglenia obliczeń

Zrównoleglenie niesie za sobą pewne koszty.


Procesory muszą być sterowane i
koordynowane.
Musimy wskazać każdemu procesorowi, co w
każdej chwili ma robić; to wymaga dodatkowego
wysiłku (czasu, kosztu, itp.).
Często program musi być napisany w
specjalnym języku programowania dla
systemów równoległych (np. w języku Modest).
Często program równoległy (np. z 2K
procesorami) nie będzie pracował na innym
komputerze (np. z 2L procesorami).
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 13
Algorytmy i systemy równoległe –
Równoległość, a współbieżność

Współbieżność polega na
wykonywaniu wielu zadań w tym
samym czasie, niezależnie od liczby
użytych procesorów.

Zrównoleglenie polega na
wykonywaniu tego samego zadania
na wielu procesorach.

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 14


Algorytmy i systemy równoległe –
Równoległość, a rozproszoność
Rodzaj Syst. oblicz. Syst. oblicz.
Cechy systemu równoległych rozproszonych
charakteryst.
Odległości między małe Zazwyczaj duże
procesorami

Struktura połączeń Nie ulega zmianom Może ulegać


w czasie zmianom w czasie

Niezawodność duża mała


polączeń

Opóźnienia Pomijalnie małe Zazwyczaj nie do


komunikacyjne pominięcia

Ingerencja sterowania duża mała


centralnego
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 15
Algorytmy i systemy równoległe –
Podstawowe kryteria podziału systemów równoległych

Liczba i rodzaj procesorów:


- tysiące procesorów;
- do 10-ciu procesorów;
Obecność sterowania centralnego:
- duża ingerencja systemu w pracę procesorów
(system decyduje co każdy procesor ma
wykonywać w każdej chwili);
- mała ingerencja systemu w pracę procesorów;
Obecność synchronizacji obliczeń:
- systemy synchroniczne;
- systemy asynchroniczne.
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 16
Algorytmy i systemy równoległe –
Podstawowe kryteria podziału systemów równoległych, c.d.

Wymiana informacji między procesorami


(komunikacja poprzez sieć połączeń – wybór
struktury połączeń jest zadaniem projektowym):

- podział wspólnej pamięci między procesory oraz


obecność systemu przełączającego;
- każdy procesor ma własną pamięć.

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 17


Algorytmy i systemy równoległe –
Podstawowe kryteria podziału systemów równoległych, c.d.

Rodzaj strumienia danych*)


pojedynczy grupowy

Rodzaj pojedynczy SISD SIMD


strumienia
instrukcji
grupowy MISD MIMD

*) S – Single,
M – Multiple,
I – Instruction,
D – Data.

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 18


Algorytmy i systemy równoległe –
Podział komputerów typu MIMD

Sposób komunikacji poprzez


Wspólne Przesyłanie
zmienne komunikatów

Sposób globalna GMSV GMMP


organizacji „Shared Memory”
pamięci
rozproszona DMSV DMMP
„Hybrid” „Message passing”

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 19


Algorytmy i systemy równoległe –
Przykłady zastosowań

Intel ASCI Red (Accelerated Strategic


Computing Initiative) – 1996-2010 r., do
modelowania zjawisk związanych
z zastosowaniem broni jądrowej
(9632 procesory P II Xeon 333 MHz,
moc: 2,3 T FLOPS*);
rozwiązanie układu 215 000 równań liniowych
zajęło 100 min., ale użyto procesorów 200 MHz ×
7 000);

*) dla porównania:
- procesor PENTIUM-IV 1 GHz ma moc ∼1,4 G FLOPS (1,4⋅109 FLOPS)
- moc Deep Blue z 1997 r.: ∼ 10 G FLOPS.

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 20


Algorytmy i systemy równoległe –
Przykłady zastosowań

IBM SP ASCI Blue Pacific (Lawrence Livermore


National Laboratory) –system RS/6 000, 4 × 1464
Power PC 332 MHz,
moc: 2,1 T FLOPS
RAM: 2,6 TB,
koszt: 94 mln $,
powierzchnia: 740 m2,

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 21


Algorytmy i systemy równoległe –
Przykłady zastosowań

IBM ASCI White: 8192 procesory IBM Power3-III


375 MHz,
moc: 10 T FLOPS,
RAM: 6TB (pamięć zewnętrzna: 160 TB),
koszt: 100 mln $,
powierzchnia: ok. 1000m2,
waga: 106 ton,
pobierany prąd: 1.2 MW
Ciekawostka nr 1:
wierne zasymulowanie wybuchu jądrowego
zajmuje ASCI White miesiąc !!!
Dla porównania Cray z 1995 roku liczyłby to
samo przez 60 tys. lat!!
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 22
Algorytmy i systemy równoległe –
Przykłady zastosowań

Najszybszy do niedawna system na świecie (od 2002r.-


do2007r.): japoński Earth Simulator (do symulacji
złożonych zjawisk geologicznych i pogodowych),
moc: 40 T FLOPS,
koszt: 350 mln $.
W ramach programu „Blue Gene” firmy IBM:
powstał w 2007 r. (na bazie 212992 x PowerPC 440
770MHz);
73728 GB pamięci;
maszyna o wydajności 0,5 PFLOPS (0,5*1015FLOPS) do
analizy genomu ludzkiego*).

*) Źródło: http://www.top500.org.

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 23


Algorytmy i systemy równoległe –
Przykłady zastosowań
Najszybszy obecnie system na świecie (11.2008): Roadrunner
BladeCenter QS22 Cluster,
Cluster
Miejsce: DOE/NNSA/LANL (Los Alamos, USA);
129600 x PowerXCell 8i 3.2 Ghz, OS Linux;
moc: 1,1 PFLOPS (1015FLOPS) !!!!!!!

Najszybszy w Polsce system (łącznie z Polski 6 na liście top500,


11.2008):
Galera ACTION Cluster Xeon E5345 Infiniband (67 miejsce.
11.2008);
Politechnika Gdańska;
Pamięć: 5376 GB;
Procesory: 5336 x Intel EM64T Xeon 53xx (Clovertown) 2333
MHz (9.332 GFlops);
OS: Linux;
Moc: 38 GFLOPs; *)

*) Źródło: http://www.top500.org
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 24
Podstawowe pojęcia z teorii obliczeń równoległych
Przykład (problem doboru topologii sieci komunikacyjnej)

Topologie połączeń MIMD: a) pierścień b) siatka c) drzewo d) hipersześcian


Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 25
Podstawowe pojęcia z teorii obliczeń równoległych
Przykład (problem doboru topologii sieci komunikacyjnej), c.d.

Liczba węzłów Siatka Hipersześcian


16 6 skoków 4 skoki

256 30 skoków 8 skoków

1024 62 skoki 10 skoków

2048 126 skoków 11 skoków

16384 254 skoki 16 skoków


Łączność (długość najkrótszej z dróg między dowolną parą wierzchołków)
w warunkach najgorszego przypadku
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 26
Podstawowe pojęcia z teorii obliczeń równoległych
Przykład (problem doboru topologii sieci komunikacyjnej), c.d.
Chcemy dodać do siebie 8 liczb x1, x2,...,x8.

x1+x2 x3+x4 x5+x6 x7+x8


(a) (b)
Dwie możliwe topologie sieci komunikacyjnej: (a) i (b)
Porównanie topologii (a) i (b):
•Dla topologii (a) uszkodzenie tylko jednego wierzchołka (procesora) może spowodować, że cała sieć
„rozpadnie się” na dwie części nie mogące komunikować się między sobą.
Graf z rysunku (b) może działać dalej nawet jeśli dwa procesory są uszkodzone;
•Największa odległość między parą wierzchołków (mierzona za pomocą liczby krawędzi w drodze je
łączącej) w grafie (a) wynosi 4 (dla dwóch wierzchołków) podczas, gdy w grafie (b) ta odległość wynosi 3.

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 27


Podstawowe pojęcia z teorii obliczeń równoległych
Przykład (problem doboru topologii sieci komunikacyjnej), c.d.

Zanurzenie sieci (a) w sieć (b).


Wierzchołki g, s, d są obrazami, odpowiednio,
wierzchołków górnego, środkowych i dolnych
grafu.

g d
d
d

x1+x2 x3+x4 x5+x6 x7+x8


s d
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 28
Podstawowe pojęcia z teorii obliczeń równoległych

AGS - acykliczny graf skierowany G,


G = W, A
W - zbiór wierzchołków oznaczających
operacje wykonywane na danych,
A - zbiór łuków oznaczających zależności
między danymi,
(i, j ) ∈ W 2 : operacja w wierzcholku j 
A=  
 wykorzystuje wynik operacji w wierzcholku i 
Głębokością D grafu AGS nazywamy
długość najdłuższej drogi w G.
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 29
Podstawowe pojęcia z teorii obliczeń równoległych
Przykład 1
Weźmy zadanie obliczeniowe: f ( x ) = x12 + x1 ⋅ x2 + x23 ⋅ x3
Przykładowy graf AGS:

1 2 3

4 5 6 7

8 9

p – potęgowanie
10 * – mnożenie
+ – dodawanie
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 30
Podstawowe pojęcia z teorii obliczeń równoległych

Przyjmijmy oznaczenia:
xi - wynik operacji wykonywanej w wierzchołku
i grafu AGS;
fi - operacja związana z wierzchołkiem i;
Pi - numer procesora przyporządkowanego do
wykonywania operacji w i-tym wierzchołku,
i ∈W \ Wo (W0 - zbiór wierzchołków wejściowych);
ti - chwila zakończenia operacji w i-tym
wierzchołku.

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 31


Podstawowe pojęcia z teorii obliczeń równoległych

Założenia:
wierzchołkom wejściowym nie są
przyporządkowane żadne procesory;
chwila ti zakończenia operacji w każdym
wierzchołku wejściowym jest równa 0;
każdy procesor wykonuje co najwyżej jedną
operację w danej chwili, tzn. jeżeli i, j ∈ W \ Wo ,
i ≠ j oraz ti = t j , to Pi ≠ Pj ;
jeżeli (i, j ) ∈ A , to t j ≥ ti + 1 co oznacza, że
operacja związana z wierzchołkiem j może być
wykonana dopiero po wykonaniu operacji
związanej z i-tym wierzchołkiem.
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 32
Podstawowe pojęcia z teorii obliczeń równoległych

Algorytm obliczeń równoległych jest zadany, gdy:


1o zadany jest graf AGS;
2o zadany jest harmonogram H (G ) ,
H (G ) = {(i, Pi , ti ) : i ≠ Wo }

Dysponując np. dwoma


procesorami jeden z możliwych
harmonogramów może wyglądać
następująco:

(4,1,1), (5,2,1), (6,1,2 ), (7,2,2 ),


H (G ) =  
 (8,1,3), (9, 2,3), (10,1, 4 ) 
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 33
Podstawowe pojęcia z teorii obliczeń równoległych

Złożonością obliczeniową algorytmu Alg


reprezentowanego przez AGS
i wykorzystującego p procesorów nazywamy
wielkość:
T p = min max ti (H )
H ∈H i∈W

gdzie:
max ti (H ) - czas realizacji harmonogramu H.
i∈W

H – zbiór wszystkich harmonogramów realizujących


rozpatrywany algorytm równoległy Alg;

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 34


Podstawowe pojęcia z teorii obliczeń równoległych

Zdefiniujmy wielkość: T∞ = min T p


p ≥1
Tp jest nierosnącą funkcją i ograniczoną od dołu
przez 0.

Istnieje taka liczba procesorów p*, że dla każdego


* , zachodzi:
p≥ p
T p = T∞
T∞ - złożoność obliczeniowa algorytmu reprezentowanego
przez G, gdy dostatecznie duża liczba procesorów jest
dostępna;
T1 - złożoność obliczeniowa (czas) odpowiadająca
algorytmowi sekwencyjnemu na jednym procesorze, przy
czym T1 = W \ Wo .
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 35
Podstawowe pojęcia z teorii obliczeń równoległych

Twierdzenie
• Wielkość T∞ jest równa głębokości D grafu AGS.
• T1 ≥ T p ≥ T∞ , ∀ p ≥1

Twierdzenie
Niech dla pewnego wierzchołka wyjściowego j istnieje droga z
każdego wierzchołka wejściowego.
Niech ∀i ∈W \ W0 zachodzi:
S w (i ) ≤ 2
gdzie S w (i ) =| { j ∈W : ( j, i ) ∈ A} | - stopień wewnętrzny wierzchołka i.
Wówczas zachodzi:
T∞ ≥ log 2 | W0 |
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 36
Podstawowe pojęcia z teorii obliczeń równoległych

Wnioski:
Dla operacji arytmetycznych założenie, że
S w (i ) ≤ 2 jest naturalne i dotyczy fizycznej
realizowalności operacji.
Głębokość AGS jest nie mniejsza niż logarytm
przy podstawie 2 z liczby wierzchołków
wejściowych w AGS.

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 37


Podstawowe pojęcia z teorii obliczeń równoległych

Twierdzenie
Dla każdego p ≥ 1 zachodzi:
T1
T p ≤ T∞ +
p

Dowód:
Rozpatrzmy harmonogram H ∞ , którego realizacja trwa T∞ , tzn.
optymalny harmonogram realizacji obliczeń dla zadanego grafu G,
gdy dostatecznie duża liczba procesorów jest dostępna.
Dla dodatniej liczby całkowitej k wykorzystując harmonogram H ∞
wprowadźmy zbiór:

Ak = {i ∈ W : ti = k }
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 38
Podstawowe pojęcia z teorii obliczeń równoległych
Dowód, c.d.
Zbudujemy etapowo dla tego samego grafu G harmonogram H p , który
wykorzystuje tylko p procesorów.
W k-tym etapie tego nowego harmonogramu wykonamy operacje, które
w harmonogramie H ∞ zakończyły się dokładnie w chwili k-tej.
Ponieważ tylko p procesorów jest dostępnych, k-ty etap będzie zrealizowany
 | Ak | 
w czasie  p  jednostek czasu.
 
Czas Tp nie może być większy niż czas wymagany do zrealizowania
harmonogramu H p .
Stąd:
 | Ak |  T∞  | Ak |  T1
T∞
Tp ≤ ∑   < ∑  + 1 = + T∞
k =1  p  k =1  p  p
T∞

gdzie T1 = ∑| A
k =1
k |= | W \ W0 | c.n.d.
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 39
Podstawowe pojęcia z teorii obliczeń równoległych
Przykład (dwie alternatywne reprezentacje AGS dla zadania)
AGS 1 T1 = 7
x1 x2 x3
T∞ = D = 3
Rozpatrzmy
p* = 4
zadanie:
x1 ⋅ x 2
* x 22 p x 2 ⋅ x3 * x1 ⋅ x3 * x = ( x1 + x2 ) ⋅ ( x2 + x3 )

+ +
x1 ⋅ x 2 + x 22 x1 ⋅ x3 + x 2 ⋅ x3 WNIOSEK:
+ Dla tego samego
x = ( x1 + x 2 )( x 2 + x 3 )
problemu może
AGS 2 istnieć wiele
T1 = 3 reprezentacji w
x1 x2 x3
T∞ = D = 2 postaci AGS
p∗ = 2 różniących się
wartościami T∞ oraz
x1 + x 2 + x 2 + x3 + p*.

x = ( x1 + x 2 )( x 2 + x3 )
*
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 40
Podstawowe pojęcia z teorii obliczeń równoległych

Niech G oznacza zbiór wszystkich możliwych


AGS-ów dla ustalonego problemu i ustalonej
liczby procesorów.

Wielkość
T p∗ = T p (G ∗ ) = min T p (G )
G∈ G

nazywamy złożonością problemu, T p = T p (G )


nazywamy złożonością algorytmu równoległego
przy p procesorach, a G* nazywamy
optymalnym grafem reprezentującym algorytm
rozwiązania danego problemu przy ustalonej
liczbie p procesorów.

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 41


Podstawowe pojęcia z teorii obliczeń równoległych

Przyspieszeniem algorytmu równoległego nazywamy liczbę

T ∗ (n )
S p (n ) = ≤p
T p (n )
a efektywnością algorytmu równoległego liczbę
S p (n ) T ∗ (n )
E p (n ) = = ≤1
p p ⋅ T p (n )
gdzie:
T *(n) – złożoność najlepszego sekwencyjnego algorytmu
na jednym procesorze (jeśli mamy AGS, to T *(n) = T1(n));
Tp(n) – złożoność algorytmu rozwiązywania problemu
o rozmiarze n na p procesorach.
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 42
Podstawowe pojęcia z teorii obliczeń równoległych
Przykład
n
Zadanie obliczeniowe ma postać: a = ∑ xi ⋅ yi , xi , yi ∈ ℜ
i =1
Przy użyciu n procesorów zadanie to można
rozwiązać w czasie Tn (n ) = log n  + 1 dwuetapowo.
W pierwszym etapie każdy i-ty procesor oblicza
wartość xi ⋅ yi , a następnie w drugim etapie dodaje
n uzyskanych liczb w czasie log n  .
Najlepszy algorytm dla jednego procesora wymaga
czasu T ∗ (n ) = 2n − 1 . Stąd przyspieszenie
i efektywność dla n procesorów:
2n − 1 2n − 1
S n (n ) = En (n ) =
log n  + 1 n(log n  + 1)
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 43
Podstawowe pojęcia z teorii obliczeń równoległych
Przykład, c.d.

np. dla n=3, mamy następujący AGS


x1 y1 x2 y2 x3 y3 T∞ = D = 3
5 6
T ∗ = T1 = W \ Wo = 5
1 2 3 4

T3 = 3 = log 3 + 1
x1 ⋅ y1 *
7 x2 ⋅ y2 *
x3 ⋅ y3 *

8 9 T∗ 5
S3 = = = 1,67
T3 3
+
x1 y1 + x2 y2 T∗ 5
10
E3 = = = 0,55
11 n ⋅ T3 3 ⋅ 3
+
x1 y1 + x2 y2 + x3 y3
T3 = min max ti (H (G )) = 3
H*(G)={(7,1,1),(8,2,1),(9,3,1),(10,1,2),(11,1,3)} H (G )∈H i∈W
Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 44
Dziękuję za uwagę

Z.Tarapata, Obliczenia równoległe i rozproszone, wykład nr 2, http://tarapata.strefa.pl/p_obliczenia_rownolegle_i_rozproszone/ 45

You might also like