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

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

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

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

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Analiza algorytmów zadania podstawowe

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

Przetwarzanie równoległe

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.

Analiza efektywności przetwarzania współbieżnego

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

Programowanie równoległe

Zaawansowane algorytmy i struktury danych

Sortowanie. Bartman Jacek Algorytmy i struktury

Podstawy Informatyki. Sprawność algorytmów

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

Przetwarzanie równoległe Zadanie domowe III

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

Programowanie Współbieżne. Wstęp

Podział sumatorów. Równoległe: Szeregowe (układy sekwencyjne) Z przeniesieniem szeregowym Z przeniesieniem równoległym. Zwykłe Akumulujące

Algorytmy i struktury danych

Algorytmy sortujące 1

Lista 0. Kamil Matuszewski 1 marca 2016

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

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych

TEORETYCZNE PODSTAWY INFORMATYKI

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

Wydajność komunikacji grupowej w obliczeniach równoległych. Krzysztof Banaś Obliczenia wysokiej wydajności 1

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

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

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

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

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

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

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

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Szybkie układy mnożące

Algorytmy i Struktury Danych, 2. ćwiczenia

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

Algorytmy i struktury danych

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Algorytmy i struktury danych. wykład 5

Szybkie układy mnożące

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

Wykład 8. Drzewa AVL i 2-3-4

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

Przetwarzanie równoległesprzęt

Sortowanie - wybrane algorytmy

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

INFORMATYKA SORTOWANIE DANYCH.

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

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

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

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

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

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

Podstawowe struktury danych

Sortowanie topologiczne skierowanych grafów acyklicznych

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

Analiza algorytmów zadania podstawowe

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

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

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

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

Złożoność algorytmów. Wstęp do Informatyki

Przykład eksploracji danych o naturze statystycznej Próba 1 wartości zmiennej losowej odległość

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

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Strategia "dziel i zwyciężaj"

Przykładowe B+ drzewo

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

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

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

Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy dopóki nam sie nie znudzi.

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

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

Grupowanie Witold Andrzejewski, Politechnika Poznańska, Wydział Informatyki 201/633

interfejs szeregowy wyświetlaczy do systemów PLC

Przesyłania danych przez protokół TCP/IP

TEORETYCZNE PODSTAWY INFORMATYKI

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

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

Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Zebrał dla roku.ak. 2015/2016 Rafał Walkowiak,

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

Luty 2001 Algorytmy (4) 2000/2001

Analityczne modelowanie systemów równoległych

Harmonogramowanie przedsięwzięć

Detekcja zakleszczenia (1)

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

Algorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych

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

Transkrypt:

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

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 Algorytmy równoległe 2

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) Algorytmy równoległe 3

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 Algorytmy równoległe 4

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) Algorytmy równoległe 5

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 Algorytmy równoległe Czas 6

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 Algorytmy równoległe 7

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) Algorytmy równoległe 8

Złożoność sortowania liczb w łańcuchu Załóżmy, że liczba procesorów w łańcuchu jest równa k, a wielkość zbioru liczb do posortowania równa się n. Pierwszy i ostatni procesor muszą wykonać po n-1 cykli porównań (cykl - pobranie/wysłanie, porównanie), gdyż każda liczba przez te procesory przechodzi. Problemem jest wyznaczenie przesunięcia czasowego pomiędzy rozpoczęciem pracy pierwszego procesora a rozpoczęciem pracy przez procesor ostatni w łańcuchu. Ważne są tutaj następujące spostrzeżenia: 1. wykonywane na kolejnych procesorach równolegle porównania wymagają każde 2 różnych liczb zatem n liczb jest porównywanych przez kolejne n/2 procesorów; 2. Każdy kolejny krok porównania generuje jedną liczbę do wysłania na kolejny niewykorzystany jeszcze procesor; 3. Aby kolejny procesor rozpoczął pracę konieczne są dwa - kolejne następujące po sobie porównania. W chwili gdy k-ty procesor rozpoczyna porównania wykonano już 2(k-1) następujących po sobie porównań na wcześniejszych procesorach Jeśli jest to ostatni procesor to wykona jeszcze wszystkie czyli n-1 cykli porównań. Zgodnie z powyższym jeśli procesorów jest minimalna potrzebna liczba czyli n-1 to liczba kroków do wyprowadzenia wyniku wynosi 2(n-1)+n-1 = 3n-3 Algorytmy równoległe 9

Wyznaczanie sumy rozproszonych elementów Drzewo binarne - algorytm: Elementy każdym węźle liczba węzłów K Wysłanie liczby w kierunku korzenia Wyznaczenie sum częściowych (suma 3 wartości) w węzłach pośrednich Sumy częściowe w propagują w kierunku korzenia Suma ostateczna wyznaczona w korzeniu 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 t sum RAZEM: (K-1)/2 * ( 2t kom + 2 t sum ) + (K-1)/2 * 2 * t kom 2 K t kom + K Algorytmy równoległe 10

Wyznaczanie sumy rozproszonych elementów drzewo binarne (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 Uwagi : 4 log 2 K t kom + 2log 2 K t sum 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) inna architektura prezentacja wkrótce. Algorytmy równoległe 11

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 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 Algorytmy równoległe 12

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 równy 2. Algorytmy równoległe 13

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. Algorytmy równoległe 14

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 Algorytmy równoległe 15

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 Algorytmy równoległe 16

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 Algorytmy równoległe 17

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

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. Algorytmy równoległe 19

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 Algorytmy równoległe 20