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

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. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

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

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

Analiza algorytmów zadania podstawowe

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

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Analiza efektywności przetwarzania współbieżnego

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

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

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.

Zaawansowane algorytmy i struktury danych

Algorytmy i struktury danych

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

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

Lista 0. Kamil Matuszewski 1 marca 2016

Sortowanie. Bartman Jacek Algorytmy i struktury

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

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

Algorytmy i Struktury Danych, 2. ćwiczenia

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

Algorytmy i Struktury Danych

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

Podstawy Informatyki. Sprawność algorytmów

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

Przetwarzanie równoległesprzęt. Rafał Walkowiak Wybór

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

Przetwarzanie równoległe

Wrocław, Wstęp do informatyki i programowania: liczby pierwsze. Wydział Matematyki Politechniki Wrocławskiej.

Algorytmy i Struktury Danych, 2. ćwiczenia

Algorytmy i Struktury Danych

Luty 2001 Algorytmy (4) 2000/2001

Programowanie równoległe

Algorytmy i struktury danych

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

Sortowanie topologiczne skierowanych grafów acyklicznych

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

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

Równoległe algorytmy sortowania. Krzysztof Banaś Obliczenia równoległe 1

Sortowanie - wybrane algorytmy

Algorytmy sortujące 1

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

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

Algorytm i złożoność obliczeniowa algorytmu

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

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

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

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

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

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Jeszcze o algorytmach

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

INFORMATYKA SORTOWANIE DANYCH.

Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.

Algorytmy i struktury danych. Wykład 4

Wykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami.

Stronicowanie w systemie pamięci wirtualnej

Podstawowe struktury danych

Przetwarzanie równoległesprzęt

Układy kombinacyjne 1

TEORETYCZNE PODSTAWY INFORMATYKI

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

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Programowanie w VB Proste algorytmy sortowania

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

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

Wstęp do programowania

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

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

WHILE (wyrażenie) instrukcja;

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

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

Przetwarzanie równoległe Zadanie domowe III

5. Model komunikujących się procesów, komunikaty

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

WHILE (wyrażenie) instrukcja;

Podzielność, cechy podzielności, liczby pierwsze, największy wspólny dzielnik, najmniejsza wspólna wielokrotność.

Programowanie Współbieżne. Wstęp

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Strategia "dziel i zwyciężaj"

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

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Materiały dla finalistów

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

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

PODSTAWY INFORMATYKI wykład 10.

Złożoność obliczeniowa zadania, zestaw 2

Przesyłania danych przez protokół TCP/IP

Analiza algorytmów zadania podstawowe

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Równoległość i współbieżność

Równoległość i współbieżność

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

f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu

Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla

Programowanie Współbieżne. Algorytmy

Transkrypt:

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15

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

Znajdowanie maksimum w k zbiorach n liczb 3 2 k - krotne obliczenia w potoku 1 n - liczność zbioru W(n) = k*(n-1) f Ap (n) = O(k +log n)

Analiza efektywności - aglomeracja (1) 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

Analiza efektywności - aglomeracja (2) 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)

Analiza efektywności -aglomeracja (3) wykres praca-czas Procesory A - 3*t por +7*t kom = (log 2 n)t por +(2log 2 n+1)t kom B - 3*t por +5*t kom = (log 2 n)t por +(log 2 n+2)t kom Bez aglomeracji Po aglomeracji Czas

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

Działanie algorytmu na wejście łańcucha podajemy kolejno wartości: 2,3,4,1,-1 proc1 proc2 proc3 proc4 czas 2,3 2k,p 3,4 2 2k,p 4,1 2,3 2k,p 4,-1 3,1 2 2k,p -1 3,4 2,1 2k,p 4,-1 2,3 1 2k,p -1 3,4 1,2 2k,p 4,-1 2,3 2k,p -1 3,4 2k,p 4,-1 2k,p -1 we wy

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

Złożoność sortowania liczb w łańcuchu Załóżmy, że liczba procesorów jest równa n - wielkości zbioru liczb do posortowania. Każdy procesor musi wykonać po n-1 cykli porównań (cykl - pobranie/wysłanie, porównanie), gdyż każda liczba przez każdy procesor przechodzi. Problemem jest wyznaczenie przesunięcia czasowego pomiędzy rozpoczęciem pracy kolejnego procesora Ważne są tutaj następujące spostrzeżenia: 1. Każdy kolejny krok porównania generuje jedną liczbę do wysłania na kolejny niewykorzystany jeszcze procesor; 2. Każdy krok porównania wymaga 2 transmisji blokujących = wysłanie i odbiór = RAZEM Tc=tp+2tk 3. Aby kolejny procesor rozpoczął porównywanie potrzebuje 2 liczb - konieczne jest wykonanie w systemie 2 następujących po sobie porównań na procesorze wcześniejszym. 4. Po ostatnim porównaniu mamy 2 komunikacje dla wysłania wyników porównania w odpowiedniej kolejności Liczba kroków: Liczba kroków (porównanie i 2 transmisje) do rozpoczęcia pracy procesora p to: 2*(p-1) Liczba kroków pracy ostatniego procesora to n-1 cykli (porównanie i przesłanie) Zatem czas przetwarzania T to: [2 * (p-1) + n-1] *Tc+ 2 tk Dla p1=n T= 3n -3 lub T= 3p1-3 Dla p2=n-1 T= 3n-5 lub T=3p2-2

Wyznaczanie sumy rozproszonych elementów Drzewo binarne - algorytm: 1. Elementy każdym węźle liczba węzłów K 2. Wysłanie liczby w kierunku korzenia 3. Wyznaczenie sum częściowych (suma 3 wartości) w węzłach pośrednich 4. Sumy częściowe w propagują w kierunku korzenia 5. Suma ostateczna wyznaczona w korzeniu 6. Propagacja sumy do wszystkich węzłów Liczba operacji praca: OBLICZENIA - dla każdego węzła oprócz liści - 2 komunikacje i 2 sumowania PROPAGACJA WYNIKU - dla każdego węzła oprócz liści 2 komunikacjei w dół drzewa RAZEM: (K-1)/2 * ( 2t kom + 2 t sum ) + (K-1) t kom wyniku, - Obliczenia, propagacja

Wyznaczanie sumy rozproszonych elementów drzewo binarne (część 2) Czas przetwarzania liczba kolejno realizowanych kroków algorytmu: liczba poziomów drzewa oprócz poziomu liści - realizowany cykl - 2 odbiory komunikatu (synchroniczne) i 2 sumowania liczba poziomów drzewa oprócz poziomu liści 2 przesłania RAZEM: (log 2 (K+1) - 1) * ( 2t kom + 2 t sum ) + (log 2 (K+1) - 1) * 2t kom log 2 K (t kom + t sum ) Uwagi : Liczba operacji sumowania równa minimalnej. Poziom równoległości obliczeń i równoległości komunikacji zmienny Możliwość dlaszej minimalizacji liczby przesłań (rozsyłanie wyniku) w innej architekturze prezentacja wkrótce.

Wyznaczanie sumy rozproszonych elementów łańcuch dwukierunkowy Łańcuch dwukierunkowy: Węzeł centralny, całkowita liczba węzłów K Analogiczna do drzewa praca tym razem równoległa w 2 gałęziach- przesyłanie do węzła centralnego z sumowaniem Liczba operacji praca: K-3 razy - dla każdego węzła oprócz węzłów końcowych i centralnego - odbiór komunikatu i sumowanie, w węźle centralnym 2 odbiory i 2 sumowania K-3 razy dla każdego węzła oprócz węzłów końcowych i centralnego - wysłanie informacji, węzeł centralny 2 przesłania RAZEM: (K-3) * ( t kom + t sum ) + 2* t kom + 2*t sum + (K-3) * t kom + 2* t kom 2 K t kom + K t sum

Wyznaczanie sumy rozproszonych elementów łańcuch dwukierunkowy (2) Czas przetwarzania liczba kolejno realizowanych kroków algorytmu: o o o M = ½ (liczba węzłów oprócz końcowych i centralnego) razy realizowany cykl - odbiór komunikatu i sumowanie; węzeł centralny- 2 odbiory i 2 sumowania M razy 1 przesłanie; węzeł centralny 2 przesłania RAZEM: ½ (K-3) (t kom + t sum ) + 2 t sum + 2 t kom + ½* (K-3) * t kom + 2 * t kom K t kom + ½ K t sum Uwagi : o Liczba operacji sumowania równa minimalnej. o Poziom równoległości obliczeń i komunikacji bliski 2.

Wyznaczanie sumy rozproszonych elementów - pierścień jednokierunkowy 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-1 razy - dla każdego węzła oprócz węzła następnego po centralnym - odbiór komunikatu i sumowanie, K-1 razy dla każdego węzła oprócz węzła przed centralnym - wysłanie wyniku sumy RAZEM: (K-1) * ( t kom + t sum ) + (K-1) * t kom K t sum +2K 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.

Wyznaczanie sumy rozproszonych elementów pierścień jednokierunkowy, komunikacja synchroniczna a elementy sumowane; number_of_nodes=2n;n>1 k:=2;s := a jeśli parzysty to odbierz b1; wyślij a jeśli nieparzysty to wyślij a; odbierz b1 s:= s + b1 while k < number_of_nodes jeśli parzysty to odbierz b2; wyślij b1;b1:=b2 jeśli nieparzysty to wyślij b1; odbierz b1 s:= s + b1 k:= k + 1 Optymalizacja liczby przesłań kosztem nadmiarowych obliczeń: n sumowań, n (2n synchronicznie) komunikacji zamiast n sumowań, 2n komunikacji (zbieranie i wysyłanie) w rozwiązaniu z poprzedniej strony

Wyznaczanie sumy rozproszonych elementów pierścień (2) przykład 4 węzły 4 1 3 Operacje węzła 3 (przechowuje wartość a) 1. wyślij a;odbierz b; s = a+b; 2. 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-1, każdy krok przetwarzania to: nadanie, odbiór, sumowanie ilość pracy n*(n-1) sumowań, n*(n-1) przesłań 2 zmniejszenie czasu przetwarzania do (n-1)t s +2(n-1)t k

Wyznaczanie sumy rozproszonych elementów - podział pracy na zadania węzeł - operacja dodawania łuk - operacja przesłania jednej liczby liczność zbioru n, W= 3*n, f Ap (n)= log 2 n

Wyznaczanie sumy rozproszonych elementów - aglomeracja połączenie zadań zadania-operacje realizowane sekwencyjnie połączone w jedno zadanie, minimalizacja komunikacji, wzrost lokalności danych

Wyznaczanie sumy rozproszonych elementów - wynik aglomeracji 8 zadań to: 3 fazy wymiany wartości między parami zadań 3 fazy dodawania dodawanie 2 wartości, wyznaczana lokalnie suma 2,4 lub 8 elementów Pracę można zrzutować w sposób 1 zadanie na 1 procesor na 3 wymiarową kostkę procesorów.

Wyznaczanie sumy rozproszonych elementów - struktura przetwarzania w systemie 4 wymiarowej kraty podwójnej Sumowanie danych rozproszonych w 16 węzłach log 2 16 = 4 kroki

Znajdowanie liczb pierwszych Metody: dzielenie badanej liczby przez liczby pierwsze i badanie wartości reszty z dzielenia usuwanie wielokrotności - 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 badanego przedziału) n? Wystarczy znaleźć dla każdej liczby złożonej minimalny podzielnik: dla 35 5, dla 77 7, dla 121 11. Czy istnieje warunek ograniczający maksymalną wartość najmniejszego podzielnika liczby n? Tak. Maksymalna wartość najmniejszego podzielnika liczby złożonej n wynosi n 1/2. 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 <2, x i 1/2 > lub usunąć liczby będące wielokrotnością liczb pierwszych z przedziału <2, l 1/2 >

Wykreślanie z tablicy Z badanego zbioru (tablicy) usuwamy wielokrotności (jakie?) liczb pierwszych z przedziału <2,zakres górny 1/2 > Przykład dla zakresu : <2,65> 2 : 4,6,8,...64 3 : 9,15,21,27,33,39,45,51,57,63 5 : 25,35,55,65 7 : 49 nie jest konieczna do rozpoczęcia obliczeń znajomość wszystkich liczb-pierwszych z przedziału <2,zakres górny 1/2 >; 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.

Sito Eratostenesa - koncepcja podejścia funkcjonalnego do podziału w architekturze z przekazywaniem komunikatów 2,3,4,5,..,12 0 znaczenie koncepcyjne niska efektywność /2 /3 /5 /7 11,13,17,19,23,29,31,37,41,..., 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 <2, k 1/2 > 2k 1/2 /ln k