Zasady projektowania algorytmów równoległych
|
|
- Edyta Szydłowska
- 5 lat temu
- Przeglądów:
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 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ółowoAlgorytmy 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ółowoAlgorytmy 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ółowoAlgorytmy 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ółowoTworzenie 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ółowoTworzenie 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ółowoNumeryczna 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ółowoAlgorytmy 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ółowoJak 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ółowoProjektowanie 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ółowoTworzenie 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ółowoAnaliza 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ółowoZadania 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ółowoRó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ółowoPrzygotowanie 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ółowoAnaliza 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ółowoANALIZA 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ółowoPrzykł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ółowoEFEKTYWNOŚĆ 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ółowoPytania 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ółowoSystemy 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ółowoPrzetwarzanie 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ółowo4. 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ółowoAlgorytmy 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ółowo4. 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ółowoZarzą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ółowoPrzykł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ółowoObliczenia 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ółowoStruktury 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ółowoTworzenie 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ółowoWydajność 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ółowoOperacje 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ółowoProgramowanie 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ółowo10/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ółowoLiteratura. 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ółowoZł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ółowoOgraniczenia 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ółowoZadania 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ółowoSkalowalność 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ółowoMATERIAŁ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ółowoAlgorytmy 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ółowoPodstawowe 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ółowoProjektowanie 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ółowoCzęść 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ółowoPodstawy 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ółowoMacierzowe 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ółowoWydajność 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ółowo5. 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ółowoE: 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ółowoZaawansowane 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ółowokoniec 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ółowoProgramowanie 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ółowoJę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ółowo4. 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ółowoWprowadzenie 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ółowoArchitektura 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ółowoProgramowanie 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ółowoSieci 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ółowoSystem 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ółowoMatematyczne 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ółowoZadania 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ółowoZarzą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ółowoAlgorytmy 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ółowomiejsca 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ółowoTEORETYCZNE 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ółowoProjektowanie. 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ółowoPodstawowe 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ółowoWykł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ółowoAnaliza 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ółowoTEORETYCZNE 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ółowo1. 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ółowoMatematyka 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ółowoReprezentacje 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ółowoMATEMATYKA 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ółowo16. 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ółowoMetody 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ółowoPrzetwarzanie 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ółowoGraf. 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ółowoSpacery 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ółowoTeoretyczne 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ółowoMOŻ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ółowoZarzą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ółowoDrzewa 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ółowoNumeryczna 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ółowoWstę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ółowoWstę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ółowoDWA 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ółowoKodowanie 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ółowoWykł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ółowoWydajność 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ółowoSpis 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ółowoProgramowanie 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ółowoNowoczesne 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ółowoProgramowanie 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ółowoZadania 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ółowoPrzetwarzanie 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ółowoAlgorytmy 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ółowoZapoznanie 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ółowoProjekt 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ółowoOgraniczenia 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