Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Podobne dokumenty
Algorytmy Równoległe i Rozproszone Część IV - Model PRAM

Algorytmy Równoległe i Rozproszone Część IV - Model PRAM

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

a) 7 b) 19 c) 21 d) 34

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Matematyka dyskretna

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Algorytmiczna teoria grafów

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Digraf. 13 maja 2017

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Znajdowanie skojarzeń na maszynie równoległej

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Algorytmy Równoległe i Rozproszone Część IV - Model PRAM

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Programowanie równoległe

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Wykład 10 Grafy, algorytmy grafowe

Algorytmy i Struktury Danych.

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Wstęp do programowania

Matematyczne Podstawy Informatyki

Graf. Definicja marca / 1

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

TEORETYCZNE PODSTAWY INFORMATYKI

G. Wybrane elementy teorii grafów

Algorytmy i Struktury Danych

Minimalne drzewa rozpinające

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Egzaminy i inne zadania. Semestr II.

MATEMATYKA DYSKRETNA - KOLOKWIUM 2

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Matematyka dyskretna - 7.Drzewa

Analiza ilościowa w przetwarzaniu równoległym

Złożoność obliczeniowa klasycznych problemów grafowych

Matematyczne Podstawy Informatyki

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

Matematyczne Podstawy Informatyki

Opracowanie prof. J. Domsta 1

Ogólne wiadomości o grafach

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Analiza algorytmów zadania podstawowe

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Spis treści. Przykład. Przykład 1 Przykład 2. Twórcy Informacje wstępne Pseudokod Przykład. 1 Grafy skierowane z wagami - przypomnienie

Podstawowe własności grafów. Wykład 3. Własności grafów

Sortowanie topologiczne skierowanych grafów acyklicznych

Algorytmy i Struktury Danych, 2. ćwiczenia

Akademickie Mistrzostwa Polski w Programowaniu Zespołowym

Problem 1 prec f max. Algorytm Lawlera dla problemu 1 prec f max. 1 procesor. n zadań T 1,..., T n (ich zbiór oznaczamy przez T )

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV

E ' E G nazywamy krawędziowym zbiorem

Programowanie obiektowe

Programowanie współbieżne Wstęp do obliczeń równoległych. Rafał Skinderowicz

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Lista 4. Kamil Matuszewski 22 marca 2016

Wysokość drzewa Głębokość węzła

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

Algorytmy i Struktury Danych.

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Lista 0. Kamil Matuszewski 1 marca 2016

Macierzowe algorytmy równoległe

Algorytmy i Struktury Danych.

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

Algorytmiczna teoria grafów

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 5 i 6. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Grafy i Zastosowania. 9: Digrafy (grafy skierowane) c Marcin Sydow

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

5. Najkrótsze ścieżki

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Sprawozdanie do zadania numer 2

Wykłady z Matematyki Dyskretnej

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Suma dwóch grafów. Zespolenie dwóch grafów

Wprowadzenie do złożoności obliczeniowej

PROGRAMOWANIE SIECIOWE. METODA ŚCIEŻKI KRYTYCZNEJ

Marek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Transkrypt:

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06 Spis treści 1 Jakość 2 1.1 Przyspieszenie........................... 2 1.2 Efektywność............................ 5 1.3 Skalowalność............................ 5 2 Cykl Eulera 5 2.1 Postorder............................. 7 3 Floyd-Warshall 9 4 Sortowanie 10 5 Problemy P -zupełne 11 5.1 Zbiór niezależny.......................... 11 5.2 Zbiór dominujący......................... 11 5.3 Maksymalny przepływ...................... 11 1

6 Problemy otwarte 12 6.1 Kolorowanie krawędziowe..................... 12 6.2 Izomorfizm poddrzew....................... 12 1 Jakość algorytmów równoległych Czas obliczeń (złożoność algorytmu) Liczba potrzebnych procesorów. Przyjęty model obliczeń Przyspieszenie Efektywność Skalowalność 1.1 Przyspieszenie Rozważmy problem, dla którego sekwencyjny algorytm wymaga czasu T s. Dysponujemy algorytmem, który działa w czasie T p przy użyciu P procesorów. Speedup = T s T p Efficiency = T s P T p W jaki sposób obliczamy czasy T s i T p? 2

Przyspieszenie względne (Relative Speedup) Niech A będzie algorytmem równoległym. RelativeSpeedup(n, p) = T s T p T s =Czas rozwiązania problemu P na jednym procesorze T p =Czas rozwiązania problemu P na p procesorach Przyspieszenie rzeczywiste (Real Speedup) Niech A będzie algorytmem równoległym. RealSpeedup(n, p) = T s T p T s =Czas rozwiązania problemu najlepszym znanym algorytmem sekwencyjnym, T p =Czas rozwiązania problemu P na p procesorach. W obu wypadkach mierzymy czas na maszynie równoległej. 3

Przyspieszenie bezwzględne (Absolute Speedup) Niech A będzie algorytmem równoległem. AbsoluteSpeedup(n, p) = T s T p T s =Czas rozwiązania problemu najlepszym znanym algorytmem sekwencyjnym na najszybszym znanym procesorze, T p =Czas rozwiązania problemu P na p procesorach. Asymptotyczne przyspieszenie rzeczywiste (Asymptotic Real Speedup) Niech S(n) będzie złożonością obliczeniową najlepszego algorytmu sekwencyjnego, a A algorytmem równoległym i P A (n) jego złożonością bez ograniczenia na liczbę procesorów. AsymptoticRealSpeedup(n, p) = S(n) P (n) Cost Normalized Speedup CNS(n, p) = speedup(n, p) koszt systemu równoległego koszt systemu sekwencyjnego 4

1.2 Efektywność Efektywność jest miarą ściśle związaną z przyspieszeniem. Ogólnie można zapisać efficiency = Speedup, p gdzie p jest liczbą użytych procesorów. W zależności od tego jaką przyjmiemy formę przyspieszenia uzyskamy różne miary efektywności. 1.3 Skalowalność Intuicyjnie system/algorytm jest skalowalny, jeśli efektywność maleje wolno wraz ze wzrostem rozmiaru problemu i liczby procesorów. 2 Metoda cyklu Eulera Niech G = (V, E) spójny graf prosty. Możemy utworzyć graf G o tym samym zbiorze wierzchołków V oraz zbiorze krawędzi E otrzymanym przez zastąpienie każdej nieskierowanej krawędzi E e = {u, v} poprzez dwie krawędzie skierowane (u, v) i (v, u). Fakt 1 Otrzymany w ten sposób graf jest Eulerowski. 5

Rozważmy teraz drzewo T. Zaczniemy od znalezienia cyklu Eulera w T = (V, E ). Niech v V wierzchołek w T i lista sąsiadów N(v){u 0, u 1, u 2,..., u deg(u) 1 }. Istotne jest, że dla każdego wierzchołka v zbiór sąsiadów N(v) musi być uporządkowany. Dla każdej krawędzi (u i, v) definiujemy następnik succ(u i, v) = (v, u i+1(mod deg(v)) ) Fakt 2 Tak zdefiniowana funkcja succ (następnik) definiuje cykl Eulera w T. Przykład Zakładając kolejność sąsiadów: 1 : {2}, 2 : {1, 3, 4}, 3 : {2}, 6 4 : {2, 5}, 5 5 : {4, 6, 7, 8}, 6 : {5}, 7 : {5}, 4 8 : {5, 9, 10}, 9 : {8}, 2 10 : {8, 11}, 11 : {10}, 1 3 7 8 9 10 11 Na tym rysunku uzyskamy cykl: 1, 2, 3, 2, 4, 5, 6, 6, 7, 5, 8, 9, 8, 10, 11, 10, 18, 5, 4, 2, 1 6

Mając krawędzie drzewa ułożone w cykl możemy stosować metody typu pointer jumping dla drzew. Otrzymujemy w ten sposób metode konstruowania algorytmów przy użyciu O(n) procesorów i logarytmicznym czasie działania. Ćwiczenie 1 Zaprojektuj efektywny algorytm równoległy obliczania sumy wszystkich elementów zapamiętanych w strukturze drzewiastej. 2.1 Kolejność Postorder We: Drzewo T = (V, E) z korzeniem r wyróżnionym poprzez relację p, gdzie p(u) = v - oznacza v jest rodzicem u w drzewie T oraz Cykl Eulera w T w formie relacji succ. Wy: Dla każdego wierzchołka jego numer w kolejności Postorder post(v). 7

Algorytm 1: Kolejność Postorder 1: for każda krawędź (u, v) in parallel do 2: if u = p(v) then 3: krawędź ma wagę 0 4: else 5: krawędź ma wagę 1 6: end if 7: end for 8: Znajdź sumę wag na krawędziach stosując pointer jumping 9: for każdy wierzchołek (v) in parallel do 10: post(v) = znaleziona suma wag. 11: end for Model: CREW PRAM, czas O(log n) i O(n) procesorów. Ćwiczenie 2 Zaprojektuj algorytm typu EREW PRAM, który w czasie O log n oblicza rozmiary poddrzew o korzeniach we wszystkich węzłach drzewa binarnego. 8

3 Algorytm Floyd a-warshall a Rozważmy graf G = (V, E), w którym z każdą krawędzią skojarzono nieujemną wagę w ij. W ten sposób otrzymamy macierz wag W = (w ij ) uzupełniając przekątną zerami: w ii = 0 i pozostałe wagi wartością nieskończoność: w ij =, jeśli nie ma krawędzi z i do j. Algorytm Floyd a Warshall a pozwala obliczyć długość najkrótszej ścieżki z i do j, jak też i jej przebieg. Odtworzenie każdej ścieżki umożliwia macierz (p ij ), w której element p ij pokazuje wierzchołek poprzedni w stosunku do j w najkrótszej ścieżce z i do j. Algorytm 2: Floyd-Warshall 1: for i = 1 to n in parallel do 2: for j = 1 to n in parallel do 3: d ij = w ij 4: p ij = i 5: end for 6: end for 7: for k = 1 to n do 8: for każda para i, j, gdzie 0 < i, j n i i, j k in parallel do 9: if d ij > d ik + d kj then 10: d ij > d ik + d kj 11: p ij = p kj 12: end if 13: end for 14: end for We: Graf w postaci macierzy wag w ij Wy: Macierze d ij i P ij Model: CREW PRAM. Czas O(n) i O(n 2 ) procesorów. 9

Ćwiczenie 3 Zaprojektuj algorytm typu CREW PRAM, który w czasie O(n) znajdzie przechodnie domknięcie relacji binarnej. 4 Sortowanie przez ranking Czas O(log n) i O(n 2 ) procesorów. We: Wektor do posortowania X = [x 1,... x n ] Model: CREW PRAM. Algorytm 3: Sortowanie przez ranking 1: for każda para i, j, gdzie 0 < i, j n in parallel do 2: if x i > x j then 3: c ij = 1 4: else 5: c ij = 0 6: end if 7: end for 8: for i = 1 to n in parallel do 9: policz r i = n j=1 10: end for 11: for i = 1 to n in parallel do 12: ustaw element i na pozycji r i w tablicy wynikowej 13: end for 10

5 Problemy P -zupełne przykłady 5.1 Zbiór niezależny Dany jest graf nieskierowany G = (V, E) z identyfikatorami, oraz wyróżniony wierzchołek u. Stwierdzić, czy v należy do leksykograficznie pierwszego maksymalnego zbioru niezależnego (maksymalnej kliki, + 1 pokolorowania wierzchołkowego) Kod w LtPC: A.2.1, A.2.2, A.2.6. 5.2 Zachłanny zbiór dominujący Dany jest graf nieskierowany G = (V, E) z identyfikatorami, oraz wyróżniony wierzchołek u. Rozstrzygnąć, czy u należy do zbioru dominującego znalezionego algorytmem zachłannym. Algorytm zachłanny dokłada do zbioru za każdym razem wierzchołek o największej liczbie nie zdominowanych sąsiadów i najmniejszym identyfikatorze. Kod w LtPC: A.2.14 5.3 Maksymalny przepływ Dany jest graf skierowany G = (V, E) z wagami na krawędziach, oraz dwa wyróżnione wierzchołki: źródło (ang. source) i odpływ (ang. sink). Rozstrzygnąć, czy w G istnieje przepływ f. Kod w LtPC: A.4.4 11

6 Problemy otwarte przykłady 6.1 Kolorowanie krawędziowe Dany jest graf nieskierowany G. Znaleźć + 1 kolorowanie krawędziowe G Kod w LtPC: B.9.3 6.2 Izomorfizm poddrzew Dane są dwa nieukorzenione drzewa T i T. Rozstrzygnąć, czy T jest izomorficzne z pewnym poddrzewem T Kod w LtPC: B.9.9 12