Zasady projektowania algorytmów równoległych

Wielkość: px
Rozpocząć pokaz od strony:

Download "Zasady projektowania algorytmów równoległych"

Transkrypt

1 Zasady projektowania algorytmów równoległych Rafał Walkowiak jesień 2 /4/23 Zasady projektowania

2 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. /4/23 Zasady projektowania 2

3 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. /4/23 Zasady projektowania 3

4 Przykład Podział - przykłady 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

5 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). /4/23 Zasady projektowania 5

6 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. /4/23 Zasady projektowania 6

7 Przydział zadań do procesów cd przykład str 4 liczba interakcji Z4 Z3 Z2 Z Z4 Z3 Z2 Z P3 P2 P P Z6 Z5 P3 P2 P P Z5 Z7 P2 P P Efektywny przydział przypadku samochodowego na 4 procesory. Proces jednostka logiczna realizująca zadania Processor 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. /4/23 Zasady projektowania 7 Z7 Z6 P P P

8 Metody ogólnego przeznaczenia: - dekompozycja rekursywna, - dekompozycja danych. Techniki podziału Metody specjalnego przeznaczenia: - dekompozycja eksploracyjna, - dekompozycja spekulatywna. 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 /4/23 Zasady projektowania 8

9 Dekompozycja rekursywna - przykłady min(,2) min(4,) min(9,2) min(4,9) min(,6) min(9,) min(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. /4/23 Zasady projektowania 9

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

11 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 /4/23 Zasady projektowania

12 Dekompozycja danych (3) Podział danych wejściowych i wyjściowych przykład następna strona 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. /4/23 Zasady projektowania 2

13 Podział danych wejściowych i wyjściowych - przykład P A,B,C,E,G, H A,B,C,F,K,L D,E,F,K A,D,E,G,L A,B,C D,E C,E,G A,E A,B,C,E,G, H A,B,C,F,K,L D,E,F,K A,D,E,G,L C,D F,G B,C,F C,D,L P3 F,G,H,I F,G,H,I P2 A,G,H,K,L B,C,G,K D,F,K,L F,G,H F,G,I,J A,B,C D,E C,E,G A,E A,G,H,K,L B,C,G,K D,F,K,L F,G,H F,G,I,J C,D F,G B,C,F C,D,L 2 Wzorce, zbiory danych, częstość występowania P4 /4/23 Zasady projektowania 3

14 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. /4/23 Zasady projektowania 4

15 Dekompozycja eksploracyjna - przykład - 5-to elementowa układanka 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ół /4/23 Zasady projektowania 5

16 Dekompozycja spekulatywna Dotyczy realizacji zbioru możliwych zadań bez znanych wartości danych wejściowych. Zadania te są przetwarzane w możliwym stopniu, zazwyczaj tylko jedno z zadań będzie kontynuowane jako wynik uzyskania wartości danych wejściowych decydujących o ścieżce obliczeń. Przykład: - analiza rozgałęzień wyrażenia switch języka C - symulacja zdarzeń dyskretnych analiza zachowania podsystemu w wyniku pojawienia się możliwych danych wejściowych; w przypadku, gdy dane są znane wykorzystuje się właściwe wyniki bez konieczności dokonywania obliczeń od podstaw. /4/23 Zasady projektowania 6

17 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 /4/23 Zasady projektowania 7

18 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. /4/23 Zasady projektowania 8

19 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 gdy zadania generowane statycznie o znanym koszcie łatwiejsze programowanie. Przydział dynamiczny gdy zadania generowane dynamicznie, uwzględnienie lokalizacji i wielkości danych oraz modelu programowania trudniejsze programowanie, potencjalnie bardziej efektywne przetwarzanie. /4/23 Zasady projektowania 9

20 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 2

21 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)

22 Przydział statyczny (2) Statyczny regularny graf interakcji między zadaniami 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: oczekiwanie procesorów na realizację przetwarzania wynika z zależności kolejnościowych opisanych w grafie interakcji a nie z liczby zadań. 6

23 Przydział zadań do procesorów - odwzorowanie (zagnieżdżenie) grafów Graf aplikacji - graf wyjściowy - graf zadań ze strukturą komunikacji (połączeń między zadaniami). Graf systemu obliczeniowego - graf docelowy - struktura systemu wielokomputerowego, w którym przetwarzanie ma być realizowane. Przeciążenie (ang. congestion) liczba ścieżek komunikacyjnych przypadająca na jedno łącze. Odstęp (ang.dilation) - liczba łącz wykorzystywanych do realizacji pojedynczej ścieżki komunikacyjnej. Powiększenie (ang. expansion) - określa ile zadań zostało przydzielonych do procesora 23

24 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

25 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, 25

26 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 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. 26

27 Odwzorowanie hiperkostki w kratę 2 wymiarową 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 wynosi 2 27

28 Przydział statyczny (3) Statyczny nieregularny graf interakcji między zadaniami P P P2 P 3 6 P 7 8 A b P2 Przydział zgodnie z regułą właściciel przetwarza wynikający z podziału tablicy b na jednakowe ciągłe bloki powoduje w celu realizacji przetwarzania mnożenia macierzy konieczność dostępu do obcych danych - elementów tablicy b: Proces pobiera elementy 3,4,5,6,7,8 Proces pobiera elementy,,2,6,7 Proces2 pobiera elementy,,2,3,5 Zaproponowany podział grafu interakcji zrealizowany w sposób minimalizujący liczbę krawędzi z węzłami w różnych partycjach grafu pozwala na zmniejszenie liczby zewnętrznych dostępów: Proces pobiera elementy,7 Proces pobiera elementy,2,5,6,7 Proces2 pobiera elementy,4,8 28

29 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. 29

30 Minimalizacja kosztów interakcji Maksymalizacja dostępu lokalnego do danych wykorzystanie danych lokalnych lub ostatnio pobranych zapobiega pobieraniu danych do kontynuacji pracy minimalizacja wielkości danych współdzielonych przez właściwy przydział np. wielowymiarowy wykorzystywanie danych lokalnych do przechowywania wyników pośrednich minimalizacja częstości dostępu pobieranie większych porcji niezbędnych danych awansem, analiza w kodzie wartości, które będą musiały być pobrane i pobieranie ich wszystkich w jednym kroku. Minimalizacja współubiegania się o zasoby zapobieganie równoczesnym komunikacjom przez to samo łącze, dostępu do tego samego bloku pamięci, wysyłaniu komunikatu do tego samego procesu. Przykład: C i,j = Σ p- k= A i,k *B k,j realizowane współbieżnie dla różnych wartości j i jednakowej wartości i powoduje próbę jednoczesnych (kolejkowanych) dostępów do tych samych elementów tablicy A C i,j = Σ p- k= A i,(i+j+k)% p *B (i+j+k)% p,j powoduje, że różna jest kolejność odwoływania się do elementów tablicy A /4/23 Zasady projektowania 3

31 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. 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ą. /4/23 Zasady projektowania 3

32 Minimalizacja kosztów interakcji Replikacja danych / obliczeń Zbiorowe operacje interakcji zastosowanie dostarczonych w postaci operacji bibliotecznych zoptymalizowane sprzętowo i algorytmicznie operacji: dostęp do danych: pobieranie dane rozproszonych, rozsyłanie danych (niekoniecznie optymalne dla serii przesłań np. rozgłaszanie serii 4 komunikatów) obliczenia bazujące na intensywnej wymianie danych, synchronizacji Nakładanie wielu interakcji w czasie P>P2 P>P P2>P3 P>P P>P2 P2>P3 P>P P>P P>P P>P P>P2 P>P2 P>P2 P>P2 P2>P3 P2>P3 P2>P3 P2>P3 Rozgłaszanie w systemie 4 procesorowym - komunikat (dwie realizacje) i 4 komunikaty /4/23 Zasady projektowania 32

33 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 /4/23 Zasady projektowania 33

34 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 /4/23 Zasady projektowania 34

Zasady projektowania algorytmów równoległych

Zasady projektowania algorytmów równoległych 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

Bardziej szczegółowo

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

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych 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

Bardziej szczegółowo

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

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2018/19 Problem: znajdowanie

Bardziej szczegółowo

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

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych 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

Bardziej szczegółowo

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

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Metodologia programowania równoległego Przykłady podziałów zadania na podzadania: Podział ze względu na funkcje (functional

Bardziej szczegółowo

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

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

Numeryczna algebra liniowa

Numeryczna algebra liniowa Numeryczna algebra liniowa Numeryczna algebra liniowa obejmuje szereg algorytmów dotyczących wektorów i macierzy, takich jak podstawowe operacje na wektorach i macierzach, a także rozwiązywanie układów

Bardziej szczegółowo

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

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010 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ść

Bardziej szczegółowo

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

Jak zrównolegla się algorytmy - projektowanie algorytmów równoległych Jak zrównolegla się algorytmy - projektowanie algorytmów równoległych 1 Dekompozycja problemu Pierwszym krokiem w zrównoleglaniu algorytmu jest podział problemu na zadania (ang. task), które mogą być wykonane

Bardziej szczegółowo

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

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012 Projektowanie algorytmów równoległych Zbigniew Koza Wrocław 2012 Spis reści Zadniowo-kanałowy (task-channel) model algorytmów równoległych Projektowanie algorytmów równoległych metodą PACM Task-channel

Bardziej szczegółowo

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

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

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. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015 Analiza efektywności przetwarzania współbieżnego Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015 Źródła kosztów przetwarzania współbieżnego interakcje między procesami

Bardziej szczegółowo

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

Zadania jednorodne 5.A.Modele przetwarzania równoległego. Rafał Walkowiak Przetwarzanie równoległe Politechnika Poznańska 2010/2011 Zadania jednorodne 5.A.Modele przetwarzania równoległego Rafał Walkowiak Przetwarzanie równoległe Politechnika Poznańska 2010/2011 Zadanie podzielne Zadanie podzielne (ang. divisible task) może zostać

Bardziej szczegółowo

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

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami dr inż. Mariusz Uchroński Wrocławskie Centrum Sieciowo-Superkomputerowe Agenda Cykliczny problem przepływowy

Bardziej szczegółowo

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania, Przetwarzanie równoległe PROJEKT OMP i CUDA Temat projektu dotyczy analizy efektywności przetwarzania równoległego realizowanego przy użyciu komputera równoległego z procesorem wielordzeniowym z pamięcią

Bardziej szczegółowo

Analiza efektywności przetwarzania współbieżnego

Analiza efektywności przetwarzania współbieżnego Analiza efektywności przetwarzania współbieżnego Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak 1/4/2013 Analiza efektywności 1 Źródła kosztów przetwarzania współbieżnego interakcje

Bardziej szczegółowo

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

ANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ ANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ 1 Mnożenie macierzy dostęp do pamięci podręcznej [język C, kolejność - j,i,k][1] A,B,C są tablicami nxn for (int j = 0 ; j

Bardziej szczegółowo

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

Przykładem jest komputer z procesorem 4 rdzeniowym dostępny w laboratorium W skład projektu wchodzi: Przetwarzanie równoległe PROJEKT OMP Temat projektu dotyczy analizy efektywności przetwarzania równoległego realizowanego w komputerze równoległym z procesorem wielordzeniowym z pamięcią współdzieloną.

Bardziej szczegółowo

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

EFEKTYWNOŚĆ MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ EFEKTYWNOŚĆ MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ 1 Mnożenie macierzy dostęp do pamięci podręcznej [język C, kolejność - j,i,k][1] A[i][*] lokalność przestrzenna danych rózne A,B,C są

Bardziej szczegółowo

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

Pytania przykładowe (z ubiegłych lat) na zaliczenie przedmiotu Przetwarzanie równoległe Przygotował Rafał Walkowiak Poznań 3.01. Pytania przykładowe (z ubiegłych lat) na zaliczenie przedmiotu Przetwarzanie równoległe Przygotował Rafał Walkowiak Poznań 3.01.2013 Przetwarzanie w systemach z pamięcią współdzieloną 1. Procesory systemu

Bardziej szczegółowo

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

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych Systemy wbudowane Wykład 11: Metody kosyntezy systemów wbudowanych Uproszczone metody kosyntezy Założenia: Jeden procesor o znanych parametrach Znane parametry akceleratora sprzętowego Vulcan Początkowo

Bardziej szczegółowo

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

Przetwarzanie równoległesprzęt. Rafał Walkowiak Wybór Przetwarzanie równoległesprzęt 2 Rafał Walkowiak Wybór 17.01.2015 1 1 Sieci połączeń komputerów równoległych (1) Zadanie: przesyłanie danych pomiędzy węzłami przetwarzającymi, pomiędzy pamięcią a węzłami

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

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

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

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną Dariusz Wawrzyniak Plan wykładu Pamięć jako zasób systemu komputerowego hierarchia pamięci przestrzeń owa Wsparcie dla zarządzania pamięcią na poziomie architektury komputera Podział i przydział pamięci

Bardziej szczegółowo

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

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych. Grafy Graf Graf (ang. graph) to zbiór wierzchołków (ang. vertices), które mogą być połączone krawędziami (ang. edges) w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków. Graf

Bardziej szczegółowo

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

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Obliczenia równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 15 czerwca 2001 Spis treści Przedmowa............................................

Bardziej szczegółowo

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

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

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

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

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

Wydajność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Wydajność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Wydajność obliczeń równoległych Podobnie jak w obliczeniach sekwencyjnych, gdzie celem optymalizacji wydajności było maksymalne

Bardziej szczegółowo

Operacje grupowego przesyłania komunikatów

Operacje grupowego przesyłania komunikatów Operacje grupowego przesyłania komunikatów 1 Operacje grupowego przesyłania komunikatów Operacje, w ramach których ten sam komunikat lub zbiór komunikatów przesyłany jest pomiędzy więcej niż dwoma procesami

Bardziej szczegółowo

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

Programowanie współbieżne Wykład 2. Iwona Kochańska Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas

Bardziej szczegółowo

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

10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu Literatura 1. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 2. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010. 3. Designing

Bardziej szczegółowo

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

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1 Literatura 1. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010, 2013 2. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 3. Designing

Bardziej szczegółowo

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

Złożoność obliczeniowa zadania, zestaw 2 Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze

Bardziej szczegółowo

Ograniczenia efektywności systemu pamięci

Ograniczenia efektywności systemu pamięci Ograniczenia efektywności systemu pamięci Parametry pamięci : opóźnienie (ang. latency) - czas odpowiedzi pamięci na żądanie danych przez procesor przepustowość systemu pamięci (ang. bandwidth) - ilość

Bardziej szczegółowo

Zadania badawcze prowadzone przez Zakład Technik Programowania:

Zadania badawcze prowadzone przez Zakład Technik Programowania: Zadania badawcze prowadzone przez Zakład Technik Programowania: - Opracowanie metod zrównoleglania programów sekwencyjnych o rozszerzonym zakresie stosowalności. - Opracowanie algorytmów obliczenia tranzytywnego

Bardziej szczegółowo

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

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności

Bardziej szczegółowo

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

MATERIAŁY POMOCNICZE DO LABORATORIUM Z PRZETWARZANIA RÓWNOLEGŁEGO KWIECIEŃ 2018 Analiza efektywności mnożenia macierzy w systemach z pamięcią współdzieloną MATERIAŁY POMOCNICZE DO LABORATORIUM Z PRZETWARZANIA RÓWNOLEGŁEGO KWIECIEŃ 2018 1 Mnożenie macierzy dostęp do pamięci podręcznej

Bardziej szczegółowo

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących

Bardziej szczegółowo

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

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja 0.1 29.10.2013 Przypomnienie - podział układów cyfrowych Układy kombinacyjne pozbawione właściwości pamiętania stanów, realizujące

Bardziej szczegółowo

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. 2/34 Modelowanie CRC Modelowanie CRC (class-responsibility-collaborator) Metoda identyfikowania poszczególnych

Bardziej szczegółowo

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

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1 Część 3 Układy sekwencyjne Układy sekwencyjne i układy iteracyjne - grafy stanów 18.11.2017 TCiM Wydział EAIiIB Katedra EiASPE 1 Układ cyfrowy - przypomnienie Podstawowe informacje x 1 x 2 Układ cyfrowy

Bardziej szczegółowo

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

Podstawy techniki cyfrowej. Układy asynchroniczne Opracował: R.Walkowiak Styczeń 2014 Podstawy techniki cyfrowej Układy asynchroniczne Opracował: R.Walkowiak Styczeń 2014 Charakterystyka układów asynchronicznych Brak wejścia: zegarowego, synchronizującego. Natychmiastowa (niesynchronizowana)

Bardziej szczegółowo

Macierzowe algorytmy równoległe

Macierzowe algorytmy równoległe Macierzowe algorytmy równoległe Zanim przedstawimy te algorytmy zapoznajmy się z metodami dekompozycji macierzy, możemy wyróżnić dwa sposoby dekompozycji macierzy: Dekompozycja paskowa - kolumnowa, wierszowa

Bardziej szczegółowo

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

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Motywacja - memory wall Krzysztof Banaś, Obliczenia wysokiej wydajności. 2 Organizacja pamięci Organizacja pamięci:

Bardziej szczegółowo

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

5. Model komunikujących się procesów, komunikaty Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć

Bardziej szczegółowo

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne Przypominajka: 152 drzewo filogenetyczne to drzewo, którego liśćmi są istniejące gatunki, a węzły wewnętrzne mają stopień większy niż jeden i reprezentują

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)

Bardziej szczegółowo

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

koniec punkt zatrzymania przepływów sterowania na diagramie czynności Diagramy czynności opisują dynamikę systemu, graficzne przedstawienie uszeregowania działań obrazuje strumień wykonywanych czynności z ich pomocą modeluje się: - scenariusze przypadków użycia, - procesy

Bardziej szczegółowo

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Programowanie rekurencyjne: ZALETY: - prostota - naturalność sformułowania WADY: - trudność w oszacowaniu zasobów (czasu i pamięci) potrzebnych do realizacji Czy jest możliwe wykorzystanie

Bardziej szczegółowo

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 4 Diagramy aktywności I Diagram aktywności (czynności) (ang. activity

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Wprowadzenie do programowania współbieżnego

Wprowadzenie do programowania współbieżnego Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski Zamiast wstępu... Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 1 dr inż. Literatura ogólna Ben-Ari, M.: Podstawy programowania współbieżnego i rozproszonego. Wydawnictwa Naukowo-Techniczne, Warszawa, 2009. Czech, Z.J:

Bardziej szczegółowo

Sieci Petriego. Sieć Petriego

Sieci Petriego. Sieć Petriego Sieci Petriego Sieć Petriego Formalny model procesów umożliwiający ich weryfikację Główne konstruktory: miejsca, przejścia, łuki i żetony Opis graficzny i matematyczny Formalna semantyka umożliwia pogłębioną

Bardziej szczegółowo

System plików. Warstwowy model systemu plików

System plików. Warstwowy model systemu plików System plików System plików struktura danych organizująca i porządkująca zasoby pamięci masowych w SO. Struktura ta ma charakter hierarchiczny: urządzenia fizyczne strefy (partycje) woluminy (w UNIXie:

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Informacje podstawowe 1. Konsultacje: pokój

Bardziej szczegółowo

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

Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Zebrał dla roku.ak. 2015/2016 Rafał Walkowiak, Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Zebrał dla roku.ak. 2015/2016 Rafał Walkowiak, 30.01.2016 Zagadnienia sprzętowe w przetwarzaniu równoległym 1.1 Procesory systemu równoległego

Bardziej szczegółowo

Zarządzanie pamięcią w systemie operacyjnym

Zarządzanie pamięcią w systemie operacyjnym Zarządzanie pamięcią w systemie operacyjnym Cele: przydział zasobów pamięciowych wykonywanym programom, zapewnienie bezpieczeństwa wykonywanych procesów (ochrona pamięci), efektywne wykorzystanie dostępnej

Bardziej szczegółowo

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

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane Algorytmy i struktury danych Wykład 4 Tablice nieporządkowane i uporządkowane Tablice uporządkowane Szukanie binarne Szukanie interpolacyjne Tablice uporządkowane Szukanie binarne O(log N) Szukanie interpolacyjne

Bardziej szczegółowo

miejsca przejścia, łuki i żetony

miejsca przejścia, łuki i żetony Sieci Petriego Sieć Petriego Formalny model procesów umożliwiający ich weryfikację Główne konstruktory: miejsca, przejścia, łuki i żetony Opis graficzny i matematyczny Formalna semantyka umożliwia pogłębioną

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 2 2 Struktury danych i algorytmy Analiza algorytmów Typy danych i struktury danych Sposoby zapisu algorytmów

Bardziej szczegółowo

Projektowanie. Projektowanie mikroprocesorów

Projektowanie. Projektowanie mikroprocesorów WYKŁAD Projektowanie mikroprocesorów Projektowanie układ adów w cyfrowych - podsumowanie Algebra Boole a Bramki logiczne i przerzutniki Automat skończony System binarny i reprezentacja danych Synteza logiczna

Bardziej szczegółowo

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

Podstawowe własności grafów. Wykład 3. Własności grafów Wykład 3. Własności grafów 1 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2). 2 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2).

Bardziej szczegółowo

Wykład 10 Grafy, algorytmy grafowe

Wykład 10 Grafy, algorytmy grafowe . Typy złożoności obliczeniowej Wykład Grafy, algorytmy grafowe Typ złożoności oznaczenie n Jedna operacja trwa µs 5 logarytmiczna lgn. s. s.7 s liniowa n. s.5 s. s Logarytmicznoliniowa nlgn. s.8 s.4 s

Bardziej szczegółowo

Analiza ilościowa w przetwarzaniu równoległym

Analiza ilościowa w przetwarzaniu równoległym Komputery i Systemy Równoległe Jędrzej Ułasiewicz 1 Analiza ilościowa w przetwarzaniu równoległym 10. Analiza ilościowa w przetwarzaniu równoległym...2 10.1 Kryteria efektywności przetwarzania równoległego...2

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 2 2 Struktury danych i algorytmy Analiza algorytmów Typy danych i struktury danych Sposoby zapisu algorytmów

Bardziej szczegółowo

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

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania 1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja nie ma parametru i zwraca wartość na zewnątrz. nie ma parametru i nie zwraca wartości na zewnątrz. ma parametr o nazwie void i zwraca

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka dyskretna. Andrzej Łachwa, UJ, /14 Matematyka dyskretna Andrzej Łachwa, UJ, 2016 andrzej.lachwa@uj.edu.pl 13/14 Grafy podstawowe definicje Graf to para G=(V, E), gdzie V to niepusty i skończony zbiór, którego elementy nazywamy wierzchołkami

Bardziej szczegółowo

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

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów Wykład 2. Reprezentacja komputerowa grafów 1 / 69 Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). 2 / 69

Bardziej szczegółowo

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY ERIAŁY DO WYKŁADU GRAFY Graf nieskierowany Grafem nieskierowanym nazywamy parę G = (V, E), gdzie V jest pewnym zbiorem skończonym (zwanym zbiorem wierzchołków grafu G), natomiast E jest zbiorem nieuporządkowanych

Bardziej szczegółowo

16. Taksonomia Flynn'a.

16. Taksonomia Flynn'a. 16. Taksonomia Flynn'a. Taksonomia systemów komputerowych według Flynna jest klasyfikacją architektur komputerowych, zaproponowaną w latach sześćdziesiątych XX wieku przez Michaela Flynna, opierająca się

Bardziej szczegółowo

Metody uporządkowania

Metody uporządkowania Metody uporządkowania W trakcie faktoryzacji macierzy rzadkiej ilość zapełnień istotnie zależy od sposobu numeracji równań. Powstaje problem odnalezienia takiej numeracji, przy której: o ilość zapełnień

Bardziej szczegółowo

Przetwarzanie równoległesprzęt

Przetwarzanie równoległesprzęt Przetwarzanie równoległesprzęt 2 Rafał Walkowiak Wybór 4.0.204 7.0.2 Sieci połączeń komputerów równoległych () Zadanie: przesyłanie danych pomiędzy węzłami przetwarzającymi Parametry: liczba wejść, wyjść,

Bardziej szczegółowo

Graf. Definicja marca / 1

Graf. Definicja marca / 1 Graf 25 marca 2018 Graf Definicja 1 Graf ogólny to para G = (V, E), gdzie V jest zbiorem wierzchołków (węzłów, punktów grafu), E jest rodziną krawędzi, które mogą być wielokrotne, dokładniej jednoelementowych

Bardziej szczegółowo

Spacery losowe generowanie realizacji procesu losowego

Spacery losowe generowanie realizacji procesu losowego Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 2: Struktury danych i algorytmy http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-20010 http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 http://th-www.if.uj.edu.pl/~erichter/dydaktyka/dydaktyka2010/tpi-

Bardziej szczegółowo

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW Projektowanie urządzeń cyfrowych przy użyciu układów TTL polegało na opracowaniu algorytmu i odpowiednim doborze i zestawieniu układów realizujących różnorodne funkcje

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt

Bardziej szczegółowo

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

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II Wykład 6. Drzewa cz. II 1 / 65 drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem

Bardziej szczegółowo

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

Numeryczna algebra liniowa. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Numeryczna algebra liniowa Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Numeryczna algebra liniowa Numeryczna algebra liniowa obejmuje szereg algorytmów dotyczących wektorów i macierzy, takich jak

Bardziej szczegółowo

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa M. Czoków, J. Piersa 2012-01-10 1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego 3 1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego

Bardziej szczegółowo

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

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego 1 Historia i pojęcia wstępne Przetwarzanie współbieżne realizacja wielu programów (procesów) w taki sposób, że ich

Bardziej szczegółowo

DWA ZDANIA O TEORII GRAFÓW. przepływ informacji tylko w kierunku

DWA ZDANIA O TEORII GRAFÓW. przepływ informacji tylko w kierunku DWA ZDANIA O TEORII GRAFÓW Krawędź skierowana Grafy a routing Każdą sieć przedstawić składającego przedstawiają E, inaczej węzłami). komunikacyjną można w postaci grafu G się z węzłów V (które węzły sieci)

Bardziej szczegółowo

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG Kodowanie transformacyjne Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG Zasada Zasada podstawowa: na danych wykonujemy transformacje która: Likwiduje korelacje Skupia energię w kilku komponentach

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

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

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci

Bardziej szczegółowo

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3 Spis treści 1 Wprowadzenie 1 1.1 Podstawowe pojęcia............................................ 1 1.2 Sieci komunikacyjne........................................... 3 2 Problemy systemów rozproszonych

Bardziej szczegółowo

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

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................

Bardziej szczegółowo

Nowoczesne technologie przetwarzania informacji

Nowoczesne technologie przetwarzania informacji Projekt Nowe metody nauczania w matematyce Nr POKL.09.04.00-14-133/11 Nowoczesne technologie przetwarzania informacji Mgr Maciej Cytowski (ICM UW) Lekcja 2: Podstawowe mechanizmy programowania równoległego

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2015 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2015 1 / 21 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań

Bardziej szczegółowo

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

Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Zebrał dla r.ak. 2014/2015 Rafał Walkowiak, Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Zebrał dla r.ak. 2014/2015 Rafał Walkowiak, 17.01.2015 Zagadnienia sprzętowe w przetwarzaniu równoległym 1.1 Procesory systemu równoległego wykonują

Bardziej szczegółowo

Przetwarzanie równoległe Zadanie domowe III

Przetwarzanie równoległe Zadanie domowe III Przetwarzanie równoległe Zadanie domowe III Jarosław Marek Gliwiński #indeksu 7439 16 stycznia 010 1 Wstęp 1.1 Wykaz skrótów i oznaczeń W pierwszej kolejności przedstawione zostaną używane w pracy oznaczenia,

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia

Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@kaims.pl Oficjalna strona wykładu http://www.kaims.pl/

Bardziej szczegółowo

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.

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. Wstęp 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. Przedstawienie architektur sprzętu wykorzystywanych do

Bardziej szczegółowo

Projekt struktury sieci neuronowej

Projekt struktury sieci neuronowej Projekt struktury sieci neuronowej Sieci neuronowe są stosowane między innymi jako narzędzie klasyfikacyjne, poprawne określenie struktury sieci pozwala na uzyskanie struktury sprawnie i w miarę bezbłędnie

Bardziej szczegółowo

Ograniczenia efektywności systemu pamięci

Ograniczenia efektywności systemu pamięci Ograniczenia efektywności systemu pamięci Parametry pamięci : opóźnienie (ang. latency) - czas odpowiedzi pamięci na żądanie danych przez procesor przepustowość systemu pamięci (ang. bandwidth) - ilość

Bardziej szczegółowo