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

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

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 Równoległe i Rozproszone Część V - Model PRAM II

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

Sortowanie topologiczne skierowanych grafów acyklicznych

Zadania jednorodne 5.A.Modele przetwarzania równoległego. Rafał Walkowiak Przetwarzanie równoległe Politechnika Poznańska 2010/2011

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

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Analiza algorytmów zadania podstawowe

Lista 0. Kamil Matuszewski 1 marca 2016

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

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

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

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

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

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

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

Matematyczne Podstawy Informatyki

Algorytmy i Struktury Danych

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Podstawowe algorytmy i ich implementacje w C. Wykład 9

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

EGZAMIN MATURALNY Z INFORMATYKI. 10 maja 2017 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I

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

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Akademickie Mistrzostwa Polski w Programowaniu Zespołowym

Podstawy Informatyki. Inżynieria Ciepła, I rok. Iteracja warunkowadopóki(while) Blok instrukcji. Pascal: begin instrukcja1; C: { end;

Graf. Definicja marca / 1

WHILE (wyrażenie) instrukcja;

Materiały pomocnicze do laboratorium. 1. Miary oceny efektywności 2. Mnożenie macierzy 3. Znajdowanie liczb pierwszych

Zaawansowane algorytmy i struktury danych

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

WHILE (wyrażenie) instrukcja;

Algorytmiczna teoria grafów

Luty 2001 Algorytmy (4) 2000/2001

TEORETYCZNE PODSTAWY INFORMATYKI

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Podstawy Informatyki. Sprawność algorytmów

Algorytmiczna teoria grafów

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

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

Zagadnienie transportowe

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Znajdowanie skojarzeń na maszynie równoległej

Jeszcze o algorytmach

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

Analiza efektywności przetwarzania współbieżnego

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )

Wykład z Technologii Informacyjnych. Piotr Mika

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

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

Matematyczne Podstawy Informatyki

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

ANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ

Programowanie Równoległe i Rozproszone. Algorytm Kung a. Algorytm Kung a. Programowanie Równoległe i Rozproszone Wykład 8. Przygotował: Lucjan Stapp

Algorytm i złożoność obliczeniowa algorytmu

PODSTAWY INFORMATYKI wykład 10.

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

Algorytmy i struktury danych

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!

Opracowanie prof. J. Domsta 1

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Algorytmy i Struktury Danych

Sortowanie. Bartman Jacek Algorytmy i struktury

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja

Szczegółowy program kursów szkoły programowania Halpress

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Zagadnienie transportowe (badania operacyjne) Mgr inż. Aleksandra Radziejowska AGH Akademia Górniczo-Hutnicza w Krakowie

Harmonogramowanie przedsięwzięć

Ogólne wiadomości o grafach

EFEKTYWNOŚĆ MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ

Matematyczne Podstawy Informatyki

TEORETYCZNE PODSTAWY INFORMATYKI

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

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

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Algorytmy sortujące 1

Metody uporządkowania

Algorytmy i Struktury Danych, 2. ćwiczenia

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

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

Algorytmy i struktury danych

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Transkrypt:

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

Znajdowanie maksimum w zbiorze n liczb węzły - maksimum liczb głębokość = 3 praca = 4++ = 7 (operacji) n - liczność zbioru W(n) = n- cykli f Ap (n) = O(log n) S p (n),e p (n) obliczenia w potoku Algorytmy równoległe

Znajdowanie maksimum w k zbiorach n liczb 3 k - krotne obliczenia w potoku n - liczność zbioru W(n) = k*(n-) f Ap (n) = O(k +log n) Algorytmy równoległe 3

Analiza efektywności - aglomeracja () Czy aglomeracja (połączenie zadań) jest możliwa bez spadku stopień równoległości? I II Zgrupowanie operacji realizowanych sekwencyjnie - możliwy przydział do jednego węzła przetwarzającego, mniej komunikacji, ten sam stopień równoległości. III I I I Przesłania poszczególnych etapów I II III II Algorytmy równoległe 4

Analiza efektywności - aglomeracja () Mniej przesłań między węzłami Niższa złożoność obliczeniowa Ta sama ilość pracy ( 7 porównań) Wzrost stopnia wierzchołka ( 3 do 5 ) Mniejsza liczba procesorów (4 zamiast 7) Algorytmy równoległe 5

Analiza efektywności -aglomeracja (3) wykres praca-czas Procesory A - 3*t por +7*t kom = (log n)t por +(log n+)t kom B - 3*t por +5*t kom = (log n)t por +(log n+)t kom Bez aglomeracji Po aglomeracji Algorytmy równoległe Czas 6

Sortowanie w łańcuchu procesorów Wejście: ciąg liczb (minimum jedna) zakończonych - Wyjście: posortowany ciąg zakończony - Kod dla wszystkich węzłów: pobierz a pobierz b while b > do { if a>b then wyślij b we pobierz b } wyślij a; wyślij b; else wyślij a; a:=b wy Algorytmy równoległe 7

Działanie algorytmu na wejście łańcucha podajemy kolejno wartości: 4,3,5,6,- krok I II III IV 4,3 t,p 4, 3 t 4,5 3 t,p 5 4,3 t,p 5,6 4 3 t,p 6 5,4 3 t,p 6,- 5 3,4 t,p - 6,5 4 3 t,p we 6,- 5,4 3 t,p - 6,5 3,4 t,p wy Algorytmy równoległe 8

Sortowanie liczb w łańcuchu wykres praca- czas t sortowanie na I czas t sortowanie na I-IV t 3 zbieranie wyników t = (n-)*t p +(n-)* t k n* t c t c = t p +t k t =t +(n-)*(t p +t k ) n*t c t 3 =(n+)*t c t +t 3 3n*t c f Am = 3n*t c = O(n) Algorytmy równoległe 9

Wyznaczanie sumy rozproszonych elementów - pierścień jednokierunkowy analogiczne do rozesłania N do N Węzeł centralny, całkowita liczba węzłów K Sekwencyjne sumowanie i przesyłanie sum częściowych do węzła centralnego; Rozsyłanie wyniku do wszystkich węzłów Liczba operacji praca: K- razy - dla każdego węzła oprócz węzła następnego po centralnym - odbiór komunikatu i sumowanie, K- razy dla każdego węzła oprócz węzła przed centralnym - wysłanie wyniku sumy RAZEM: (K-) * ( t kom + t sum ) + (K-) * t kom K t sum +K t kom Czas przetwarzania liczba kolejno realizowanych kroków algorytmu: Jak wyżej, gdyż wszystkie operacje realizowane sekwencyjnie. Uwagi : Liczba operacji sumowania równa minimalnej. Brak równoległości. Możliwość minimalizacji liczby przesłań w tej architekturze (uniknięcie rozsyłania wyniku) poprzez wyznaczanie sumy we wszystkich węzłach porównaj następny algorytm. Algorytmy równoległe

Wyznaczanie sumy rozproszonych elementów pierścień jednokierunkowy - komunikacja synchroniczna - analogiczne do rozesłania N do N (por. wykład komunikacja) a elementy sumowane; liczba_węzłów =n;n> k:=;s := a wyślij a; odbierz a s:= s + a while k < liczba_węzłów wyślij a; odbierz a; s:= s + a k:= k + Algorytmy równoległe

Wyznaczanie sumy rozproszonych elementów pierścień jednokierunkowy - komunikacja synchroniczna a elementy sumowane; liczba_węzłów =n;n> k:=;s := a wyślij a; odbierz b s:= s + b while k < liczba_węzłów wyślij a; odbierz b; s:= s + b k:= k + Algorytmy równoległe

Wyznaczanie sumy rozproszonych elementów pierścień jednokierunkowy - komunikacja synchroniczna a elementy sumowane; liczba_węzłów =n;n> k:=;s := a jeśli parzysty to odbierz b; wyślij a jeśli nieparzysty to wyślij a; odbierz b s:= s + b while k < liczba_węzłów jeśli parzysty to odbierz b; wyślij b;b:=b jeśli nieparzysty to wyślij b; odbierz b s:= s + b k:= k + Optymalizacja liczby przesłań kosztem nadmiarowych obliczeń (n sumowań, n (n) komunikacji - zamiast n sumowań, n komunikacji (zbieranie i wysyłanie) Algorytmy równoległe 3

Wyznaczanie sumy rozproszonych elementów pierścień () 4 3 Operacje węzła 3 (przechowuje wartość a). wyślij a;odbierz b; s = a+b;. wyślij b; odbierz b; s = s+b; 3. wyślij b;odbierz b; s = s +b; liczba węzłów n, liczba kroków przetwarzania n-, każdy krok przetwarzania to: nadanie, odbiór, sumowanie ilość pracy n*(n-) sumowań, n*(n-) przesłań zmniejszenie czasu przetwarzania do (n-)t s +(n-)t k Algorytmy równoległe 4

Wyznaczanie sumy rozproszonych elementów - podział węzeł - operacja dodawania łuk - operacja przesłania jednej liczby liczność zbioru n, W= 3*n, f Ap (n)= log n Algorytmy równoległe 5

Wyznaczanie sumy rozproszonych elementów - aglomeracja zadania-operacje realizowane sekwencyjnie połączone w jedno zadanie, minimalizacja komunikacji, wzrost lokalności danych Algorytmy równoległe 6

Wyznaczanie sumy rozproszonych elementów - aglomeracja 3 fazy wymiany wartości między parami zadań 3 fazy dodawania dodawanie wartości, wyznaczana lokalnie suma,4 lub 8 elementów Algorytmy równoległe 7

Wyznaczanie sumy rozproszonych elementów - struktura systemu Sumowanie danych rozproszonych w 6 węzłach log 6 = 4 kroki Algorytmy równoległe 8

Znajdowanie liczb pierwszych () Metody: dzielenie badanej liczby przez liczby pierwsze i badanie wartości reszty z dzielenia usuwanie ze zbioru badanych liczb liczb będących wielokrotnością liczb pierwszych Jakie liczby pierwsze uwzględniać dla badanej liczby (bądź górnego zakresu przedziału) n? Wystarczy znaleźć dla każdej liczby złożonej minimalny podzielnik: 35 5, 77 7,. Czy istnieje warunek ograniczający maksymalną wartość najmniejszego podzielnika liczby n? Algorytmy równoległe 9

Znajdowanie liczb pierwszych (3) Tak. Maksymalna wartość najmniejszego podzielnika liczby złożonej n wynosi n /. Aby znaleźć zatem liczby pierwsze x i <k,l> należy: usunąć liczby dzielące się bez reszty przez liczby pierwsze brane z przedziału <, x i / > lub usunąć liczby będące wielokrotnością liczb pierwszych z przedziału <, l / > Algorytmy równoległe

Sito Eratostenesa - podejście funkcjonalne do podziału,3,4,5,.., / /3 /5 /7,3,7,9,3,9,3,37,4,..., Pierwsza liczba odebrana przez każdy z procesów jest traktowana jako dzielnik i jako liczba pierwsza. Liczby dzielące się z resztą są przesyłane dalej. Wynik przetwarzania liczby pierwsze pojawiają się na wyjściu systemu oraz rezydują w procesach (należy je przesłać na wyjście). Liczba procesów niezbędbych dla zakresu <n,k> jest równa liczbie liczb pierwszych w zakresie od <, k / > k / /ln k Algorytmy równoległe

Wykreślanie z tablicy podejście domenowe do podziału Z badanego zbioru (tablicy) usuwamy wielokrotności (jakie?) liczb pierwszych z przedziału <,zakres górny / > Przykład dla zakresu : <,65> : 4,6,8,...64 3 : 9,5,,7,33,39,45,5,57,63 5 : 5,35,55,65 7 : 49 nie jest konieczna do rozpoczęcia obliczeń znajomość wszystkich liczb-pierwszych z przedziału <,zakres górny / >; kolejno pojawiające się liczby pierwsze mogą być wykorzystane dopiero później, gdyż wyznaczanie wielokrotności mniejszych liczb pierwszych odbywa się dla całego badanego przedziału i zajmuje stosunkowo dużo czasu. Algorytmy równoległe

Znajdowanie składowych spójnych grafu wstęp Składowa spójna grafu G każdy największy (nie dający się powiększyć o dalsze krawędzie i wierzchołki) spójny, podgraf grafu G. Graf spójny zawiera co najmniej jedną drogę między dowolną parą tworzących go wierzchołków. Algorytm: Bada graf o n wierzchołkach, Wykorzystuje n - procesorów w strukturze drzewa binarnego; Graf jest reprezentowany przez macierz sąsiedztwa, Liść drzewa posiada wiersz macierzy odpowiadający przetwarzanemu wierzchołkowi i a[i,..n]. Po zakończeniu przetwarzania zmienna ss zawiera numer składowej do której należy wierzchołek, numer ten jest równy najmniejszemu spośród numerów wierzchołków należących do tej składowej. Super-wierzchołek graf spójny, dowolny podgraf, identyfikowany przez wierzchołek o najniższym numerze spośród należących do niego. Algorytmy równoległe 3

Znajdowanie składowych spójnych grafu - algorytm Dla każdego i węzła-liścia: ss[i] = i //należy do swojego sw W pętli po wierzchołkach j=..n : Dla każdego węzła-liścia: wybrany[i] = a[i,j] W korzeniu wyznacz: c=min {ss[i]:wybrany[i]=} Roześlij c do liści //wierzchołek i należy do sw c Dopóki istnieje i dla którego wybrany[i] = W korzeniu wybierz dowolne d = ss[i]: wybrany[i] = Roześlij d do liści W każdym z liści: Jeśli ss[i]= d to ss[i]=c i wybrany[i]= //propogacja do superwierzchołka c tych wierzchołków, które należą do superwierzchołków spójnych z wierzchołkiem i Algorytmy równoległe 4

Składowe spójne -rysunek / 3/ Stan po iteracjach 4/ / / 3/ 4/ / Stan po 3 iteracjach w 3 iteracji te wierzchołki, które należą do superwierzchołków i zostają przyporządkowane do superwierzchołka Algorytmy równoległe 5

Znajdowanie składowych spójnych grafu przykład obliczeniowy Macierz sąsiedztwa 4 3 Badany graf Wartości zmiennych w węzłach s składowa, w - wybrany i zmiennych globalnych c,d 5 s w s w s3 w3 s4 w4 s5 w5 c,d krok 3 4 5,, 3 4 5,4, 3 5 3 5,, 3 5,3, 5,5,3, 3,, 3,, 3, Algorytmy równoległe 6

Znajdowanie składowych spójnych grafuomówienie W każdej iteracji j:. w wierszach 3-4 wyznaczamy (superwierzchołek) - NAJMNIEJSZY numer spośród numerów superwierchołków, do których należały dotychczas wierzchołki incydentne z wierzchołkiem j. w wierszach 7- każdemu wierzchołkowi, którego superwierzchołkiem jest wierzchołek incydentny z j zmieniamy jego superwierzchołek na wyznaczony w bieżącym kroku. Algorytmy równoległe 7

Znajdowanie składowych spójnych grafu - złożoność Każda iteracja pętli zewnętrznej wymaga czasu log n (wyznaczenie maksimum w drzewie), pętla ta jest powtarzana n razy. Pętla wewnętrzna może być powtórzona (globalnie) co najwyżej *n razy. Jej złożoność to koszt komunikacji między liściami a korzeniem. Dla każdego j jest realizowana jednokrotnie dla c=d gdyż jest tylko jedna wartość minimalna identyfikatorów superwierzchołków incydentnych w danej iteracji. Dla przypadku c<>d - łączenie superwierzchołków - może być realizowana globalnie co najwyżej n- razy. Tyle razy można powiększać superwierzchołki, na które składa się maksymalnie n elementów. Ostatecznie złożoność algorytmu wynosi O(n log n), gdyż liczba kroków o złożoności log n jest mniejsza od n. W przypadku algorytmu sekwencyjnego złożoność O(n+m) m-liczba krawędzi. Algorytmy równoległe 8