You are on page 1of 23

Wojskowa Akademia Techniczna Wydział Cybernetyki

Janusz Paszyński 25.05.2009


I6B2S1

Obliczenia Rozproszone
i Równoległe
Sprawozdanie z ćwiczenia Laboratoryjnego
Zadanie: sortowanie Bąbelkowe

Prowadzący: mgr inż. Adam Misztal

Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

Zadanie
Sortowanie Bąbelkowe polega na iteracyjnym wielokrotnym pełnym przeglądzie tablicy
wejściowej i zamianie parami elementów, które nie są ułożone we właściwy sposób.
Złożoność obliczeniowa algorytmu wynosi O(n2).

Rozwiązanie przeze mnie zaproponowane sprowadza się do wykonania n/2 iteracji. Każda z
iteracji zawiera 2 etapy. W pojedynczej iteracji dokonane zostają porównania i przestawienia
wszystkich sąsiadujących ze sobą elementów tablicy wejściowej. Wynik końcowy sortowania
należy pobrać z końcowych wierzchołków z ostatniej iteracji.

Graf AGS:

Operacja MIN to min(x,y), zaś operacja MAX to operacja max(x,y).

a) opóźnienia przesyłu danych zerowe


Posortowanie tablicy wymaga wykonania n/2 iteracji. Każda z iteracji zawiera 2 etapy.
Oznacza to, że złożoność obliczeniowa równoległego algorytmu wynosi dokładnie Θ(n). Ten
sam algorytm wykonany na 1 procesorze ma złożoność obliczeniową:
n 2 n 2 − 2n
T1 = (2n − 2) + n = + n = n2 − n + n = n2
2 2
T1 = Θ(n 2 )
Uogólniając dla k procesorów złożoność obliczeniowa wynosi:
n2
T k = Θ( )
k
Jest to oczywiście złożoność dla przypadku pesymistycznego.

Złożoność dla nieskończonej liczby procesorów:


n
T∞ = 2 = n
2

2 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

b) opóźnienia przesyłu danych między procesorami równe 2, zaś


wewnątrz 1.
Dla optymalnej liczby procesorów p*=n, wykonywanych jest dokładnie n równoległych
przesłań danych między procesorami. Złożoność obliczeniowa przy uwzględnieniu przesyłu
danych:
T∞ = n + 2n
2n
T1 = n 2 + [2(2n − 2)]
2
T1 = n + 2n(2n − 2) = n 2 + 4n 2 − 4n = 5n 2 − 4n
2

c) symulacja obliczeń równoległych


Rozmiar zadania dla symulacji n=6.

1. procesory jednorodne, zadania jednorodne

- liczba procesorów 2

3 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

-liczba procesorów 6

- liczba procesorów 10

4 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

2. procesory niejednorodne, zadania niejednorodne


Przyjąłem, że zadanie MAX wykonuje się 2 razy dłużej niż MIN, czyli 2 jednostki czasu.
Zgodnie z zadaniem każdy procesor jest 2 razy szybszy od poprzedniego. Przy rozmiarze
zadania n=6 p*=6, tak więc wartości k wynoszą kolejno: 2,6,10. W przypadku k=10 ostatni
procesor ma prędkość 512.

Kolejne podpunkty zawierają w tytule liczbę procesorów, nazwę algorytmu


harmonogramowania i algorytmu wyboru procesora oddzielone przecinkami. W sumie
wykonanych zostało w tym miejscu 24 symulacje dla różnego zestawienia algorytmów.
Zgodnie z zadaniem wybrane zostały 4 różne algorytmy harmonogramowania i 2 wyboru
procesora.
Harmonogramowanie:
1. Hu
2. SPT
3. LPT
4. Hu z SPT
Wybór procesora:
1. Pierwszy wolny

5 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

2. Najmniej obciążony
3.
- liczba procesorów 2, Hu, pierwszy wolny

- liczba procesorów 2, Hu, Najmniej obciążony

- liczba procesorów 2, SPT, pierwszy wolny

6 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

-liczba procesorów 2, SPT, najmniej obciążony

- liczba procesorów 2, LPT, pierwszy wolny

- liczba procesorów 2, LPT, najmniej obciążony

7 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

- liczba procesorów 2, Hu z SPT, pierwszy wolny

- liczba procesorów 2, Hu z SPT, najmniej obciążony

- liczba procesorów 6, Hu, pierwszy wolny

8 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

- liczba procesorów 6, Hu, najmniej obciążony

9 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

- liczba procesorów 6, SPT, pierwszy wolny

10 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

- liczba procesorów 6, SPT, najmniej obciążony

- liczba procesorów 6, LPT, pierwszy wolny

11 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

-liczba procesorów 6, LPT, najmniej obciążony

- liczba procesorów 6, Hu z SPT, pierwszy wolny

12 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

- liczba procesorów 6, Hu z SPT, najmniej obciążony

13 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

- liczba procesorów 10, Hu, pierwszy wolny

14 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

- liczba procesorów 10, Hu, najmniej obciążony,

15 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

- liczba procesorów 10, SPT, pierwszy wolny

16 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

-liczba procesorów 10, SPT, najmniej obciążony

17 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

- liczba procesorów 10, LPT, pierwszy wolny

18 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

- liczba procesorów 10, LPT, najmniej obciążony

19 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

- liczba procesorów 10, Hu z SPT, pierwszy wolny

20 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

- liczba procesorów 10, Hu z SPT, najmniej obciążony

21 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

d) Porównanie charakterystyk
Procesory, operacje Procesory, operacje
jednorodne niejednorodne
p=2 p=6 p = 10 p=2 p=6 p = 10
Sp 2 1 1 2 1 1
Ep 1 0.83 0,5 1 083 0,5
Tp 15 6 6 15 6 5.5
T∞ 36 36 36 52 52 52
D 6 6 6 6 6 6
P* 6 6 6 6 6 6

e) Wnioski
Jeśli operacje i procesory są jednorodne, nie ma wielkiego znaczenia jaki zostanie wybrany
algorytm harmonogramowania i przydziału procesora. Nabiera to znaczenia, gdy procesory
mają różne prędkości, oraz operacje nie są jednorodne. Wybór odpowiedniego algorytmy
przydziału procesora może w takiej sytuacji przyspieszyć wykonanie algorytmy nawet
kilkukrotnie.
Zrównoleglenie sortowania bąbelkowego wbrew pozorom jest zagadnieniem nietrywialnym.
Konieczne jest zaprojektowanie odpowiedniego grafu AGS tak, aby nie operować na danych
wejściowych. Przestawianie danych wejściowych prowadzi do trudności oszacowania jaka
jest aktualna wartość wewnątrz parametru i jaka wartość zostanie pobrana do obliczeń w Zi.

22 Janusz Paszyński
Wojskowa Akademia Techniczna Wydział Cybernetyki

Sortowanie bąbelkowe może zostać sprowadzone do problemu iteracji Gaussa-Seidla. Na


szczęście rozpisanie grafu dla jednej iteracji w przypadku tego algorytmu nie wymaga
konieczności tworzenia dodatkowych struktur w celu określenia kolejności operacji.

23 Janusz Paszyński

You might also like