Zasady projektowania algorytmów równoległych

Podobne dokumenty
Zasady projektowania algorytmów równoległych

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

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

Jak zrównolegla się algorytmy - projektowanie algorytmów równoległych

Numeryczna algebra liniowa

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

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

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

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

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

Analiza efektywności przetwarzania współbieżnego

Przykładem jest komputer z procesorem 4 rdzeniowym dostępny w laboratorium W skład projektu wchodzi:

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

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

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

4. Procesy pojęcia podstawowe

Pytania przykładowe (z ubiegłych lat) na zaliczenie przedmiotu Przetwarzanie równoległe Przygotował Rafał Walkowiak Poznań 3.01.

Zarządzanie pamięcią operacyjną

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

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

4. Procesy pojęcia podstawowe

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

Programowanie współbieżne Wykład 2. Iwona Kochańska

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

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

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

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

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

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

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1

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

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu

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

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

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

Język UML w modelowaniu systemów informatycznych

Matematyczne Podstawy Informatyki

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Analiza ilościowa w przetwarzaniu równoległym

Programowanie współbieżne i rozproszone

Sieci Petriego. Sieć Petriego

Podstawowe elementy układów cyfrowych układy sekwencyjne. Rafał Walkowiak

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

4. Procesy pojęcia podstawowe

miejsca przejścia, łuki i żetony

Operacje grupowego przesyłania komunikatów

Wprowadzenie do programowania współbieżnego

Podstawy techniki cyfrowej. Układy asynchroniczne Opracował: R.Walkowiak Styczeń 2014

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

Zarządzanie pamięcią w systemie operacyjnym

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Zaawansowane algorytmy i struktury danych

Zarządzanie pamięcią operacyjną

Spacery losowe generowanie realizacji procesu losowego

Numeryczna algebra liniowa. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Zadania badawcze prowadzone przez Zakład Technik Programowania:

Programowanie dynamiczne

Algorytmy i Struktury Danych

Graf. Definicja marca / 1

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Architektura komputerów

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

System plików. Warstwowy model systemu plików

Przetwarzanie równoległe Zadanie domowe III

TEORETYCZNE PODSTAWY INFORMATYKI

Macierzowe algorytmy równoległe

MATERIAŁY POMOCNICZE DO LABORATORIUM Z PRZETWARZANIA RÓWNOLEGŁEGO KWIECIEŃ 2018

Metody uporządkowania

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

Stronicowanie w systemie pamięci wirtualnej

Grafy i sieci wybrane zagadnienia wykład 3: modele służące porównywaniu sieci

Algorytmy sortujące i wyszukujące

dr inż. Jarosław Forenc

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Wykład 10 Grafy, algorytmy grafowe

Programowanie dynamiczne i algorytmy zachłanne

16. Taksonomia Flynn'a.

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

1 Automaty niedeterministyczne

Projektowanie. Projektowanie mikroprocesorów

TEORETYCZNE PODSTAWY INFORMATYKI

Czujniki obiektowe Sterowniki przemysłowe

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

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

Nowoczesne technologie przetwarzania informacji

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

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

Transkrypt:

Zasady projektowania algorytmów równoległych Rafał Walkowiak Zima? 25 /8/25 Zasady projektowania

Algorytm równoległy Algorytm sekwencyjny: sekwencja kroków rozwiązujących problem przy użyciu komputera sekwencyjnego. Algorytm równoległy: jak rozwiązać problem przy użyciu komputera równoległego? Specyfikacja kolejnych kroków i kroków, które mogą być realizowane współbieżnie. Zadania: określenie pracy nadającej się do współbieżnej realizacji przydział współbieżnych fragmentów pracy na procesory współbieżne dystrybucja danych wejściowych, wyjściowych i pośrednich zarządzanie dostępem do danych współdzielonych przez wiele procesorów synchronizacja procesorów na różnych etapach wykonania programu równoległego. Określenie algorytmu równoległego to zadanie dla programisty i projektanta algorytmów niewiele można zrobić automatycznie. /8/25 Zasady projektowania 2

Podział, zadania i graf zależności kolejnościowych Podział (ang. decomposition) obliczeń na zadania (ang. tasks). Współbieżna realizacja zadań podstawowym warunkiem efektywności przetwarzania równoległego. Zadania: dowolne rozmiary, niepodzielne, niezależne lub zależne: pewne zdania wykorzystują dane generowane przez inne zadania i oczekują na ich zakończenie: powiązania tego typu opisuje: graf zależności kolejnościowych graf acykliczny, węzły zadania, łuki -zależności między zadaniami: zadanie może być wykonane, gdy zakończyło się przetwarzanie wszystkich zadań połączonych z nim łukiem wejściowym, wagi w węzłach określają ilość pracy zadania. /8/25 Zasady projektowania 3

Przykład Podział przykłady generacji zadań wiele zadań to możliwość przetwarzania równoległego A * b = y - niezależne zadania różnej wielkości, graf zależności bez łuków Relacyjna baza danych samochodów: zapytanie dotyczące modelu, roku produkcji, koloru. Realizacja: generacja tablic zawierających informacje oddzielnie o modelu, roku i kolorze, następnie wyznaczenie przecięcia lub sumy tablic. corsa 2 srebrny biały corsa 2 srebrny biały corsa i 2 9 srebrny lub biały 6 Przykład2 srebrny lub biały corsa i 2 i (srebrny lub biały) 2 i (srebrny lub biały) 8 Grafy zależności kolejnościowych dla różnych sposobów przetwarzania zapytania. corsa i 2 i (srebrny lub biały) 7

Ziarnistość (ang. granularity) określona za pomocą liczby i rozmiaru zadań, obliczenia drobnoziarniste i gruboziarniste. Stopień współbieżności (ang. degree of concurrency) liczba zadań nadająca się do jednoczesnej realizacji, maksymalny, średni stopień współbieżności (dla zapytania o samochody z poprzedniej strony, 4;2.33, 4;,88) Ścieżka krytyczna w grafie zależności kolejnościowych najdłuższa ścieżka skierowana pomiędzy dowolną parą węzłów wejściowego (bez łuków wejściowych) i wyjściowego (bez łuków wyjściowych). Długość ścieżki krytycznej to suma etykiet węzłów na ścieżce krytycznej. Stosunek całej pracy do długości ścieżki krytycznej określa średni stopień współbieżności. Graf interakcji (między zadaniami) jest nadgrafem grafu zależności kolejnościowych i uwzględnia dodatkowo interakcje związane z koniecznością udostępnienia danych wejściowych, wyjściowych lub pośrednich przez zadania, które są właścicielami tych danych (w modelu p.r. z przesyłaniem komunikatów) przykład: mnożenie macierzy (przydział poszczególnych wierszy tablicy i wektora do procesorów udostępnianie elementów wektora). /8/25 Zasady projektowania 5

Procesy i przydział zadań Proces jednostka realizująca przetwarzanie, wykorzystuje ona kod i dane odpowiadające zadaniu i generuje dane wyjściowe w określonym czasie po aktywacji zadania przez program równoległy. Proces realizuje obliczenia, komunikuje się i synchronizuje z innymi procesami. Dla uzyskania przyspieszenia koniecznych jest wiele procesów aktywnych współbieżnie i pracujących nad różnymi zadaniami. Aby tego dokonać konieczny przydział zadań do procesów (ang. mapping). Przydział zadań Graf zależności kolejnościwych i graf interacji - baza wyjściowa maksymalizacja współbieżności przez przydział zadań niezależnych do różnych procesów, minimalizacja całkowitego czasu przetwarzania przez zapewnienie możliwości wykonania każdego zadania ze ścieżki krytycznej natychmiast jak tylko stanie się ono gotowe, minimalizacja interakcji przez przydział zadań o wysokim stopniu wzajemnych interakcji do jednego procesu, powyższe cele są często konfliktowe, przydział zadań określa w jaki sposób wykorzystana zostanie współbieżność zdefiniowana na etapie podziału, kluczowy dla efektywności przetwarzania. /8/25 Zasady projektowania 6

Przydział zadań do procesów cd przykład str 4 liczba interakcji Z4 Z3 Z2 Z Z4 Z3 Z2 Z P3 P2 P P P3 P2 P P Z6 Z5 Z5 Z7 P2 P P Efektywny przydział przypadku samochodowego na 4 procesory. Proces jednostka logiczna realizująca zadania Procesor jednostka sprzętowa wykonująca przetwarzanie Rzutowanie jeden do jeden - proces procesor na danym etapie projektu algorytmu uwzględniającym jedną formę współbieżności. Zadania procesu przydzielonego do węzła wieloprocesorowego mogą się stać elementem dalszego podziału uwzględniającego architekturę sprzętu. /8/25 Zasady projektowania 7 Z7 Z6 P P P

Metody ogólnego przeznaczenia: - dekompozycja rekursywna, - dekompozycja danych. Techniki podziału Metody specjalnego przeznaczenia: - dekompozycja eksploracyjna. Dekompozycja rekursywna polega na podziale problemu na zbiór podobnych niezależnych podproblemów, które będą mogły być rozwiązane przez podobną dekompozycję rekursywnie. Strategia dziel i zwyciężaj. Przykłady: - sortowanie poprzez rekursywny podział zbioru względem elementu osiowego na dwa podzbiory - znajdowanie maksimum przez rekursywny podział na zbioru na równe podzbiory i znajdowanie w nich maksimum /8/25 Zasady projektowania 8

Dekompozycja rekursywna przykłady określanie zadań 5 2 6 8 7 9 min(,2) 5 6 8 7 9 2 min(4,) min(9,2) 5 6 7 8 9 2 min(4,9) min(,6) min(9,) min(2,2) 5 6 7 8 2 2 Podział na 2 podzbiory o wartościach mniejszych i większych równych elementowi osiowemu; wynik w liściach. Rekurencyjny podział zbioru na podzbiory, a następnie propagacja wartości minimalnej z dwóch elementów. /8/25 Zasady projektowania 9

Dekompozycja danych () Dekompozycja danych wyjściowych określenie zadania jako pracy niezbędnej do wyznaczenia podzbioru danych wyjściowych Przykłady: mnożenia tablic elementy tablicy wyniku znajdowanie częstości występowania podzbiorów w bazie transakcji jeden/kilka wzorców dla różnych podzbiorów bazy /8/25 Zasady projektowania

Dekompozycja danych (2) Dekompozycja danych wejściowych określenie zadania jako pracy niezbędnej do przetworzenia podzbioru danych wejściowych, zazwyczaj konieczne dalsze zdania dla konsolidacji uzyskanych w ten sposób wyników pośrednich dla uzyskania wyników ostatecznych. Przykłady: znajdowanie częstości występowania podzbiorów w bazie transakcji krotności dla wszystkich wzorców w fragmencie bazy transakcji wyznaczanie sumy elementów zbioru (praca na podzbiorach). /8/25 Zasady projektowania

Dekompozycja danych (3) Podział danych wejściowych i wyjściowych. Podział danych pośrednich zdefiniowanie zadań obliczających elementy danych pośrednich Reguła właściciel przetwarza bazuje na dekompozycji danych zadanie oblicza wszystko co może wyznaczyć bazując na partycji danych wejściowych lub oblicza wszystkie elementy przydzielonej mu partycji danych wyjściowych. /8/25 Zasady projektowania 2

Dekompozycja eksploracyjna Dotyczy przeszukiwania przestrzeni rozwiązań. Zadania określają jedno z rozwiązań na drodze do celu. Każde zadanie może mieć wielu następników Znalezienie poszukiwanego rozwiązania powoduje przerwanie realizacji pozostałych zadań. Sekwencyjna generacja zadań (rozwiązań) startowych dla przetwarzania równoległego. Przykłady: metody kombinatoryczne lokalnego przeszukiwania: tabu search, genetic algorithms itp. /8/25 Zasady projektowania 3

Dekompozycja eksploracyjna - przykład - 5-to elementowa układanka 2 3 4 5 6 8 9 7 3 4 5 2 2 3 4 5 6 7 8 9 3 4 5 2 2 3 4 5 6 7 8 9 3 4 5 2 2 3 4 5 6 7 8 9 2 3 4 5 rozwiązanie startowe rozwiązania pośrednie rozwiązanie końcowe Zadania polegają na wyznaczaniu możliwych następników aktualnego rozwiązania (zadania) i współbieżnej ich analizie. Rozwiązanie startowe ma 4 następników: 7 w górę, 8 w lewo, 6 w prawo, 3 w dół /8/25 Zasady projektowania 4

Charakterystyka zadań Statyczne generowanie zadań zadania znane przed rozpoczęciem przetwarzania (dekompozycja danych), statyczny graf zależności danych (dekompozycja rekursywna) Dynamiczne generowanie zadań zadania tworzone na bieżąco w czasie przetwarzania (dekompozycja rekursywna) Rozmiary zadań jednakowe- zadania jednorodne, niejednakowe- zadania niejednorodne Znajomość rozmiarów zadań Wielkość danych związanych z zadaniem dane wejściowe, wyjściowe, pośrednie różny rozmiar /8/25 Zasady projektowania 5

Rodzaje interakcji zadań Interakcje wymiana danych, pracy, synchronizacja Interakcje statyczne określony moment i uczestnicy interakcji przed rozpoczęciem przetwarzania łatwe do implementacji w modelu z przekazywaniem komunikatów Interakcje dynamiczne brak określonych z góry momentu bądź uczestników interakcji implementacja w modelu z przekazywaniem komunikatów ze względu na konieczność uczestnictwa 2 stron wymaga wprowadzenia dodatkowych mechanizmów synchronizacji lub badania stanu. Interakcje regularne i nieregularne Interakcje: tylko-odczyt, odczyt-zapis Interakcje jedno-, dwu- stronne jednostronne możliwe w modelu współdzielonej pamięci, interakcje dwustronne wymagają zaangażowania 2 zadań, w modelu z przekazywaniem komunikatów interakcje dwustronne. /8/25 Zasady projektowania 6

Przydział zdań do procesorów Cel: minimalizacja czasu, w którym wszystkie zadania zostaną wykonane. Praktycznie minimalizacja czasu niezbędnego na interakcję między procesami, minimalizacja czasu bezczynności procesorów (ograniczenia kolejnościowe zadań) Dobry przydział zapewnia zrównoważenie przetwarzania i interakcji między procesami na każdym etapie realizacji algorytmu równoległego. Przydział statyczny stosowany gdy zadania generowane statycznie o znanym koszcie łatwiejsze programowanie. Przydział dynamiczny stosowany gdy zadania generowane dynamicznie, uwzględnienie lokalizacji i wielkości danych oraz modelu programowania trudniejsze programowanie, potencjalnie bardziej efektywne przetwarzanie. /8/25 Zasady projektowania 7

Przydział statyczny Przydział bazujący na podziale danych lub statycznym grafie zależności między zadaniami. Schematy przydziału bazujące na podziale danych, podziale zadań i hierarchiczne schematy przydziału. W podziale danych zadania definiowane są przez określenie danych. Przydział zadań do procesorów polega w tym przypadku na przydziale (dystrybucji) danych do procesorów. Schematy dystrybucji danych dzielą się w zależności od struktury danych: dystrybucje tablicowe: blokowe, gdy jednakowa ilość pracy związana z generowanym elementem cykliczne, gdy ilość pracy różna dla różnych elementów (znany trend): brak lokalności danych, wiele różnorodnych zadań większe prawdopodobieństwo, że któreś z nich gotowe, przykład - LU faktoryzacja. blokowo-cykliczne, analogiczne zyski do cyklicznej dystrybucji, większa lokalność danych. losowe dystrybucje blokowe w przypadkach gdy struktura przetwarzania nieregularna (tablice rzadkie) i możliwe nierównomierne przydziały pracy w dystrybucji cyklicznej podział grafu nieregularne struktury danych, graf określający sąsiedztwo elementów struktury danych powinien być podzielony na podgrafy (zdania procesorów) w sposób minimalizujący liczbę krawędzi z wierzchołkami przynależnymi do różnych podgrafów, przykład: symulacja rozprzestrzeniania się zanieczyszczeń w akwenach wodnych o nieregularnych kształtach. Zasady projektowania 8

Blokowy przydział statyczny - przykład A x B = C P. P6. P5 P P P2 P3 P4 P5 P6 P7 P8 P9 PP P2P3P4P5 A x B = C Przydział statyczny bazujący na podziale danych wyjściowych. Dane wejściowe niezbędne dla mnożenia tablicy podział wymiariowy n 2 +n 2 /6 O(n 2 ) podział 2 wymiarowy n 2 /2 O(n 2 / p)

Przydział statyczny (2) Statyczny regularny graf interakcji między zadaniami 4 2 4 2 3 4 5 6 7 Przydział zadań opisanych binarnym drzewem zależności do hiperkostki procesów. Minimalizacja kosztów komunikacji: wiele zależnych od siebie zadań przydzielonych do tego samego procesora, pozostałe zadania komunikujące się przydzielone do procesorów bezpośrednio ze sobą połączonych. Zapewnienie maksymalnej równoległości: wszystkie zadania nadające się do współbieżnej realizacji przydzielone do różnych procesorów. Minimalizacja czasu jałowego: tutaj oczekiwanie procesorów na realizację przetwarzania wynika z zależności kolejnościowych opisanych w grafie interakcji a nie z liczby zadań. 6

Przydział zadań do procesorów miary jakości Rzutowanie grafu zadań na graf architektury systemu komputerowego - odwzorowanie (zagnieżdżenie) grafów. Graf aplikacji - graf wyjściowy przydziału - graf zadań ze strukturą komunikacji (połączeń między zadaniami). Graf systemu obliczeniowego - graf docelowy przydziału - struktura systemu wielokomputerowego, w którym przetwarzanie ma być realizowane. Przeciążenie (ang. congestion) liczba ścieżek komunikacyjnych między zadaniami przypadająca na jedno łącze systemu. Odstęp (ang.dilation) - liczba łączy komunikacyjnych wykorzystywanych do realizacji pojedynczej ścieżki komunikacyjnej między zadaniami. Powiększenie (ang. expansion) liczba zadań przydzielonych do jednego procesora. 2

Odwzorowanie grafów Zagnieżdżenie łańcucha w hiperkostce. Kolejne 2 d elementów (oznaczonych od do 2 d -) odwzorowanych na d wymiarową hiperkostkę. Etykiety kolejnych (wg lańcucha) węzłów w hyperkostce określa się za pomocą funkcji kodu Graya. Wartości odpowiadające kolejnej pozycji liczby binarnej powstają w wyniku umieszczenia na tej pozycji i odbiciu lustrzanym wartości wcześniejszych. Brak przeciążenia i odstęp=, gdyż węzły których etykiety różnią się na jednej pozycji mają bezpośrednie łącze. łańcuch hyperkostka 2 3 4 3 2 6 5 6 7 5 7 4 22

Odwzorowanie grafów Krata zamknięta o 2 r * 2 s węzłach odwzorowana w hiperkostkę 2 r+s węzłową : wezłowi i,j odpowiada węzeł o etykiecie będącej złożeniem kodu i-tego elementu r pozycyjnego kodu Graya i kodu j-tego elementu s pozycyjnego kodu Graya czyli każdy wiersz i każda kolumna są odwzorowane w podkostkę o odpowiedniej liczbie węzłów 2,4,8,6... procesory, do których przydzielone są zadania z jednej kolumny mają jednakowe mniej znaczące bity, procesory w wierszu mają jednakowe bardziej znaczące bity etykiet, sąsiednie zadania przydzielone do sąsiednich procesorów (o etykietach różniących się na jednym bicie) brak przeciążenia i odstęp=, gdyż węzły komunikujące się - których etykiety różnią się na jednej pozycji - mają bezpośrednie łącze. Jaka będzie jakość zagnieżdzenia kraty 8-2 na hiperkostkę 2 6 lub na h 2 4? (,) (,) (,2) (,3),3,2 2,3 2,2 (,) (,) (,2) (,3),, 2, 2, (2,) (2,) (2,2) (2,3),3,2 3,3 3,2 (3,) (3,) (3,2) (3,3),, 3, 3, 23

Odwzorowanie kraty w łańcuch,,2,3,4 2,4 2,3 2,2 2, 3, 3,2 3,3 3,4 4,4 4,3 4,2 4, Krata otwarta 4X4 odwzorowana w łańcuch 6 elementowy Maksymalne przeciążenie wynosi 5 (linia przerywana) w ogólności pierwiastek(p) +. Dolne ograniczenie przeciążenia: Iloraz szerokości połowienia odwzorowywanych sieci np. szerokość połowienia: krata 4, łańcuch więc iloraz = 4 Ile wynosi maksymalny odstęp? 7 Jak odwzorować łańcuch w kratę? Szerokość połowienia to minimalna liczba łączy, jakie należy usunąć z sieci aby ją podzielić na dwie podsieci o jednakowej liczbie węzłów. 24

Odwzorowanie hiperkostki w kratę 2 wymiarową - otwartą Założenie: liczba procesorów jest równa 2 d gdzie d jest parzystą potęgą dwójki. Docelowa krata jest wymiaru 2 d/2 x 2 d/2. Kostka p węzłowa widziana jako p kostek p węzłowych (por. rysunek). Ustalając d/2 starszych bitów etykiety i biorąc pod uwagę możliwe kombinacje d/2 młodszych bitów definiujemy 2 d/2 elementowe hiperkostki. Każda taka hiperkostka (kolejno dla starszych bitów będących kolejnymi wartościami kodu Graya) jest odwzorowywana na kolejny wiersz kraty. Jest to odwzorowanie realizowane odwrotne do odwzorowania łańcuch-hiperkostka. Dolne ograniczenie przeciążenia wynika z ilorazów szerokości podziału hiperkostki (2 d- ) oraz kraty 2 d/2 i wynosi 2 d/2-. Dla p = 2 d procesorów ½ p.6 procesorów hiperkostka 4 wymiarowa 2.podział na 4 hiperkostki 2 wymiarowe 3.odwzorowanie hkostek krat na łańcuchy 4.przeciążenie i odstęp wynoszą 2 25

Przydział dynamiczny Stosowany gdy: statyczny przydział dostarcza niezrównoważonego obciążenia pracą graf zależności między zadaniami jest dynamiczny Przydział dynamiczny = równoważenie obciążeń scentralizowane jedna struktura lub proces posiadające informacje o pracy do wykonania ograniczona skalowalność ze względu na dostęp do scentralizowanej struktury/procesu stanowi wąskie gardło self scheduling szeregowanie niezależnych pojedynczych iteracji pętli pobieranych na bieżąco do realizacji po zakończeniu poprzedniej odporne na różne koszty zadań chunk scheduling zapobieganie ograniczeniu powodowanemu przez wiele procesów realizujących dostęp do jednej struktury - przydział wielu iteracji zamiast jednej; liczba iteracji właściwa dla ilości pracy, liczby procesorów, może maleć ze spadkiem ilości pracy pozostałej do wykonania. rozproszone - wymiana zadań między procesami w trakcie pracy odzwierciedlająca obciążenie pracą, konieczne do określenia: które procesy mają się komunikować? kto i kiedy inicjuje przesłanie pracy? ile pracy jest przesyłanej? W większym stopniu nadają się do systemów z pamięcią współdzielona niż systemów bazujących na przesyłaniu komunikatów. 26

Nakładanie się obliczeń i interakcji Minimalizacja kosztów interakcji Przydział wielu zadań do procesora pozwala na realizację jednego w oczekiwaniu na zakończenie interakcji innych niebezpieczeństwo wzrostu narzutów wynikających ze zmniejszenia ziarna przetwarzania (przełącznie zadań, równoważenie) Przewidywanie zakończenia przydzielonej aktualnie pracy może pozwolić na wysłanie żądania o nowe zadanie i równoczesną z kończącym się przetwarzaniem obsługę tego żądania. Wykorzystywanie przesłań nieblokujących w architekturach z przesyłaniem komunikatów. Wykorzystywanie mechanizmu wstępnego pobrania danych (sprzęt lub kompilator - wprowadzanie awansem dodatkowych instrukcji pobrania) w architekturach z pamięcią współdzieloną. /8/25 Zasady projektowania 27

Modele algorytmów równoległych Struktura algorytmu równoległego: równoległość danych przydział statyczny bazujący na podziale danych jednakowe operacje na różnych elementach ważne zapewnienie lokalności danych, możliwość stosowania zbiorowych funkcji operacji interakcji przykład: mnożenie macierzy model grafu zadań (równoległość zadań) wykorzystanie w przydziale grafu zależności zadań asynchroniczne metody interakcji przykład: równoległe sortowanie, faktoryzacja macierzy rzadkiej, wynik dekompozycji dziel i zwyciężaj model puli zadań każde zadanie wykonywalne przez dowolny proces dynamiczny przydział zadań do procesorów praca generowana statycznie lub dynamicznie zadania dostępne na liście/listach mały wolumen danych w stosunku do wielkości obliczeń (dostosowane: niezrównoważenie obciążenia koszt dostępu do puli zadań) przykład: efekt zrównoleglenia pętli /8/25 Zasady projektowania 28

Modele algorytmów równoległych model master-slave jeden lub wielu procesów zarządcy generuje i przydziela zadania do podległych procesów wykonawców generacja zadań i obliczenia mogą być realizowane w nie nakładających się fazach (synchronizacja) dostosowanie granulacji (master wąskie gardło) potok przetwarzania/ producent-konsument strumień danych przechodzi przez następujące po sobie procesy realizujące na nim przetwarzanie przybycie nowych danych wyzwala przetwarzanie potok przetwarzania może mieć formę grafu spójnego skierowanego z łukami łączącymi producentów i konsumentów, dostosowanie granulacji zadań umożliwia wyważyć pomiędzy czasem oczekiwania na rozpoczęcie przetwarzania kolejnych procesów i narzutem wynikającym z częstych interakcji równoległość strumieniowa - równoczesne wykonywania wielu programów na strumieniu danych modele mieszane połączenie modeli hierarchiczne lub czasowe /8/25 Zasady projektowania 29