Przetwarzanie równoległe- 2. Komputery równoległe

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

Download "Przetwarzanie równoległe- 2. Komputery równoległe"

Transkrypt

1 Przetwarzanie równoległe- 2. Komputery równoległe Rafał Walkowiak Modyfikacja

2 WspółbieŜność wewnętrzna przetwarzania procesora Uwarunkowania: 1. Dotychczas imponujący wzrost prędkości taktowania procesora 1000 razy szybciej w ciągu 10 lat obecnie ograniczony wielkością wydzielanej mocy cieplnej i fizycznymi wymiarami elementów struktury 2. Ograniczenia we wzroście prędkości pracy pamięci (memory wall) 3. Technologiczne moŝliwy wzrost złoŝoności układów scalonych - podwojenie złozoności w ciągu 18 miesięcy prawo Gordona Moora Jak wykorzystać moŝliwości dla wzrostu efektywności komputerów? Równoczesna realizacja wielu instrukcji w czasie jednego cyklu zegarowego - potokowość, wiele potoków - superskalarność Równoległość pracy modułów procesora Wiele rdzeni przetwarzających w pojedynczych procesorach

3 Potokowość i współbieŝne wykonanie instrukcji WspółbieŜność wewnętrzna Potoki wykonywania instrukcji zapewniają ich wykonanie w wielu równoległych krokach (20 kroków w Pentium4) kroki o niewielkiej złoŝoności stąd moŝliwość szybkiego taktowania efekt skrócenie czasu realizacji instrukcji przez potokowość (równoległość) Potok realizujący wiele instrukcji równocześnie wymaga predykcji kierunku realizacji kodu w punktach rozgałęzień kodu dla właściwego zapełnienia potoku. Wiele potoków pozwala na jednoczesne zakończenie realizacji kilku instrukcji kilka instrukcji w cyklu dzięki równoległości, wielodroŝność procesorów np. two-way superscalar execution

4 Superskalarne przetwarzanie - przykład load load load Add load Add Add Add load Add Add Add R1, R2 Add Add R1, R2 Store Store Store Cykle proc IF: POBRANIE INSTRUKCJI IF ID OF ID: DEKODOWANIE IF ID OF OF: POBRANIE OPERANDU IF ID OF E E: WYKONANIE IF ID OF E WB: ZAPIS IF ID NA E IF ID NA WB NA: BRAK DZIAŁANIA WspółbieŜne przetwarzanie w 2 potokach

5 Przetwarzanie superskalarne i potokowe Problemy konflikty : ZaleŜność między danymi wynikiem jest oczekiwanie np. w takcie 5 i 6 (No operation) ZaleŜności rozgałęzień (proceduralne) przewidywanie kierunku przetwarzania po rozgałęzieniu jest krytyczne dla efektywności przetwarzania superskalarnego Konflikty zasobowe przykład: 2 potoki przetwarzania instrukcji a jedna jednostka wykonawcza zmiennoprzecinkowa lub niskie wykorzystanie dwóch jednostek wykonawczych

6 Przetwarzanie superskalarne i potokowe Rozwiązania: Zmiana kolejności realizacji instrukcji programu out-of-order (dynamic) instruction issue (przetwarzanie dynamiczne - cecha procesora) sprzętowe badanie moŝliwości równoległej realizacji instrukcji Układy przewidywania rezultatu rozgałęzienia kodu Pobieranie rozkazów i danych z wyprzedzeniem Wiele jednostek wykonawczych, lecz niski poziom wykorzystania tych zasobów (dla typowych programów) prowadzi typowo do konstrukcji procesorów posiadających do 4 potoków przetwarzania

7 1. Brak moŝliwości wzrostu efektywności przetwarzania poprzez polepszenie poziomu zrównoleglenia realizacji programów sekwencyjnych oraz 2. duŝa dostępność układów logicznych w strukturach obwodów cyfrowych prowadzi do koncepcji: wielu rdzeni w procesorze i równoległości na poziomie programów

8 Procesory z długim słowem rozkazowym VLIW (ang. very long instruction word) processor - zastosowanie kompilatora do odkrywania sekwencji niezaleŝnych instrukcji nadających się do współbieŝnej realizacji; Instrukcje, które mogą być realizowane współbieŝnie są: określane za pomocą jednej instrukcji, która jest realizowana współbieŝnie przez wiele jednostek wykonawczych. Problemem jest brak znajomości przez kompilator stanu procesu (analiza off-line) i stąd utrudnione przewidywanie np.. kierunku przetwarzania po rozgałęzieniu w kodzie. Do tej grupy procesorów naleŝą zaproponowane przez Intel i HP procesory EPIC (explicit parallel instruction computing ) np. Intel Itanium - paczka 3 instrukcji realizowanych w równoległych potokach procesora

9 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ść danych dostarczana przez pamięć w jednostce czasu wielkość linii pamięci podręcznej (ang. cache line) - liczba słów pobierana jednorazowo do pamięci podręcznej z pamięci głównej Opóźnienie pamięci powoduje często spadek efektywności przetwarzania systemu w zaleŝności od rodzaju kodu; w szczególności od wymaganej w kodzie liczby pobrań na operację (wskaźnik dostępu - memory access rate) i lokacji danych

10 Ograniczenia efektywności przetwarzania - system pamięci Pamięć podręczna (pp): Zmniejszenie wypadkowego opóźnienia dostępu do pamięci poprzez zastosowanie pp. Stosunek trafień do pp (ang. hit ratio) określa stosunek odwołań zaspokojonych z pp do liczby wszystkich odwołań do tej pamięci. Czas dostępu do słowa w pamięci t śr t pp - czas dostępu do pamięci podręcznej t m - czas dostępu do pamięci głównej h współczynnik trafień T = h t pp + (1-h) t m

11 Ograniczenia efektywności przetwarzania - system pamięci Pozytywny efekt na efektywność zastosowania pp wynika z: wielokrotnego wykorzystania danych z pp (szybki dostęp) sprowadzonych jednokrotnie - jako linia pp (wolny dostęp) zawartości tej lnii. Cechami programów, które to zapewniają są czasowa lokalność odwołań (ang. temporal locality of reference) dane raz sprowadzone zostają wkrótce uŝyte ponownie wkrótce. przestrzenna lokalnością odwołań - (ang. spatial locality of memory access) korzystanie kolejo z danych zajmujących sąsiednie lokacje w pamięci (np. jeŝeli tablica jest zapisywana wierszami w pamięci to kolejne dostępy powinny teŝ, jeśli to moŝliwe, być realizowane wierszami)

12 Ograniczenia efektywności przetwarzania system pamięci Przykład: Wpływ przepustowości pamięci na wydajność przetwarzania Dane: System superskalarny realizujący potencjalnie 4 instrukcje zmiennoprzecinkowe w cyklu, procesor pracujący z zegarem 1GHZ - szczytowa wydajność procesora to cztery miliardy operacji zmiennoprzecinkowych na sekundę - 4GFLOPS pamięć podręczna z czasem dostępu 1 cyklu zegara i liną długości 4 słowa, pamięć systemu z 100 ns opóźnieniem, transmisją blokową na magistrali: o szerokości 1 słowa taktowanej z prędkością 200 MHz, ZałoŜenie: algorytm wymaga 1 słowa dla realizacji jednej instrukcji, stosunek trafień do pamięci podręcznej wynosi 75%

13 Ograniczenia efektywności pamięci rozwiązanie przykładu Analiza teoretyczna: Z danych - stosunek trafień - wynika, Ŝe 3 na 4 słowa są pobierane bezpośrednio z pamięci podręcznej,czyli Dostęp do 4 słów jest realizowany w czasie: dane bezpośrednio z pp - 3 * 1ns (1GHz) dane pośrednio z pp (obliczenie kosztu pobrania z pamięci systemu) do pp 100 ns +3*5 ns pierwsze słowo z pamięci systemu po czasie opóźnienia pamięci, kolejne słowa (transmisja blokowa) po cyklu magistrali (200MHz) z pp 1 ns Razem 119 ns dla czterech słów Instrukcja wymagająca średnio 1 słowa będzie mogła zatem być zrealizowana średnio raz na 30 ns. Przepustowość systemu pamięci dla tego kodu wynosi zatem 33,3 M słów na sekundę. Uzyskamy maksymalną wydajność przetwarzania kodu: 33,3 MFLOPS

14 Ograniczenia efektywności pamięci rozwiązanie przykładu Szczytowa wydajność procesora to cztery miliardy operacji zmiennoprzecinkowych na sekundę - 4GFLOPS Maksymalna wydajność przetwarzania kodu (ograniczona dostępem do pamięci): 33,3 MFLOPS Zmniejszenie szczytowej wydajności procesora 100 krotnie jest efektem: niskiego stosunku trafień, zaleŝy równieŝ od: opóźnienia dostępu do pamięci, wielkości linii pamięci podręcznej i prędkości magistrali danych

15 Ograniczenia efektywności systemu pamięci metody ukrywania opóźnienia pamięci śądanie z wyprzedzeniem określanie zapotrzebowania na dane z wyprzedzeniem, aby dotarły do pamięci podręcznej wtedy gdy będą potrzebne (realizowane przez kompilatory i procesory). Wielowątkowość Zastosowanie wielu wątków pozwala na realizacje przetwarzania wątku gotowego w czasie, gdy pozostałe wątki oczekują na dane z pamięci Szczególnie procesory wielowątkowe pozwalają na zarządzanie kontekstem wielu wątków i szybkie przełączanie w momencie realizacji Ŝądań zasobowych poszczególnych procesów. Wzrost liczby wątków moŝe jednak powodować spadek stosunku trafień do pamięci podręcznej (mniejsza pamięć przypadająca na wątek), a w konsekwencji konieczność wzrostu przepustowości magistrali dla zapewnienia odpowiedniej obsługi Ŝądań pamięciowych wątków

16 Struktury sterowania systemów równoległych (1) Sterowane scentralizowane jedna jednostka sterująca nadzorująca synchronicznie pracujące jednostki wykonawcze - SIMD (ang. Single instruction stream, multiple data stream), - ta sama instrukcja realizowana we wszystkich jednostkach wykonawczych (procesory określane jako procesory macierzowe) (maszyny Illiac IV, CM-2, MasPar MP-1, obecnie układy wykonawcze procesorów). Ten typ przetwarzania obecny PE jest w rozszerzeniach procesorów Intela - jednostki MMX, Pentium - SSE (ang. streaming SIMD Extensions). Maska aktywności jednostki określa biorące udział w kolejnym kroku przetwarzania jednostki wykonawcze PE (w zaleŝności od potrzeb/kodu) Nadrzędna jednostka sterująca GCU PE PE PE Sieć połączeń

17 Struktury sterowania systemów równoległych (2) Sterowanie rozproszone element przetwarzający moŝe realizować dowolny program niezaleŝnie od pozostałych system MIMD (ang. multiple instruction stream, multiple data stream), Wersją modelu MIMD jest SPMD (ang. single program...) realizacja tego samego kodu na róŝnych danych realizowalny w MIMD jako kod zawierający if-else bloki. W MIMD program i system operacyjny jest zawarty w pamięci kaŝdego procesora, w SIMD niekoniecznie. SIMD architektury specjalizowane dla specyficznych zastosowań procesory graficzne - GPU MIMD bardziej odpowiednie dla zastosowań o nieregularnej naturze

18 Systemy ze współdzieloną przestrzenią adresową Systemy wieloprocesorowe (ang. multiprocessors) przestrzeń adresowa współdzielona SMP (ang. symmetric multiprocessing) wszystkie procesory mają dostęp do wszystkich zasobów systemu (pamięci i systemu we/wy), jedna przestrzeń adresowa, moŝliwość przetwarzania dla wszystkich procesorów w trybie jądra (ang. kernel mode system operacyjny przejmuje realizację wątku programu np. wiele procesorów realizuje operacje i/o) Przestrzeń adresowa lokalna (własna) i przestrzeń globalna (wspólna dla wszystkich procesorów). System wieloprocesorowy typu UMA (ang. uniform memory access multicomputer) jednakowy czas dostępu kaŝdego z procesorów do dowolnego słowa. System wielokomputerowy typu NUMA (ang. Non-uniform memory access multicomputer) czas dostępu uzaleŝniony od pamięci, lokalnej czy globalnej, do której dostęp jest realizowany. SCI (ang. scalable coherent interconnect) zbiór standarowych protokołów do połączenia wielu SMP w jeden komputer o pamięci współdzielonej

19 Systemy wieloprocesorowe/wielokomputerowe P P P P C P C P C Siec połączeń Siec połączeń M M M UMA M M M P CM P CM Siec Połączeń P CM NUMA C pamięć podręczna M pamięć

20 Klastry systemy równoległe zwarte z pamięcią rozproszoną Komputer składający się z węzłów (komputerów jednostek przetwarzających procesory, pamięci, magistrale) i sieci połączeń Konstelacje gdy więcej procesorów w węźle niŝ węzłów w systemie, Komputery masowo równoległe obecnie klastry z dziesiątkami tysięcy i setkami tysięcy procesorów Superkomputery obecnie klastry o mocy rzędu biliarda (10 15 ) operacji zmiennoprzecinkowych na sekundę

21 Fizyczna organizacja maszyn równoległych model PRAM PRAM równoległy odpowiednik modelu RAM (model komputerowego przetwarzania sekwencyjnego), wspólna przestrzeń adresowa CECHY (4): jednoczesny dostęp kaŝdego procesora do dowolnej komórki pamięci w jednostkowym czasie, Idealizacja maszyn równoległych z SM, prosta analiza algorytmów, brak efektywnego algorytmu dla PRAM świadczy o braku efektywnego algorytmu dla dowolnej maszyny równoległej

22 model PRAM Model pełnego równoległego dostępu do pamięci nierealizowalny w praktyce ze względu na nierealność (wysoki koszt) zapewnienia p procesorom jednoczesnego dostępu do dowolnego słowa w pamięci ( o m słowach), gdyŝ wymaga to mp przełączników (DUśO!!!)

23 Maszyny RAM, PRAM RAM Jednostaka przetwarzająca i program Tasma wejściowa odczytu i tasma wyjściowa zapisu Rejestry (kaŝdy mieści wartość integer dowolnego rozmiaru) Jednostkowy czas instrukcji PRAM SM SIMD Wiele procesorów z rejestrami prywatnymi (bez taśm) Wspólna pamięć Dostęp do pamięci w jednostce czasu Wejście i wyjście algorytmu w określonych komórkach pamięci Synchroniczna realizacja instrukcji: przez procesory odczyt operandu, obliczenia i zapis EREW, CREW, ERCW, CRCW równoległe lub wyłączne dostępy do pamięci WspółbieŜny zapis wymaga arbitraŝu w przypadku konfliktu dostępu; Strategie zapisu: jednolita, dowolna i priorytetowa

24 Przykład: Algorytm dla CRCW PRAM z jednolitą strategią zapisu Wyznaczanie maksimum z tablicy TAB for i=1,m do parallel R[i]=TRUE; for i=1,m for j=1,m do parallel if (TAB[i]<TAB[j]) R[i]=FALSE; -- jeśli jest mniejszy to otrzymuje FALSE -- wszystkie elementy największe (równe sobie) zachowują TRUE -- jeśli procesor zapisuje to zapisuje FALSE CW ok.! For i=1,m do parallel if (R[i]==TRUE) MAX= A[i]; Wykonanie programu przez m 2 procesorów zajmuje czas stały O(1). Jednoczesny zapis dotyczy jednakowych danych

25 Sieci połączeń komputerów równoległych (1) Zadanie: przesyłanie danych pomiędzy węzłami przetwarzającymi Parametry: liczba wejść, wyjść, zdolność jednoczesnego łączenia, siła sygnału, długość łącza. Sieci połączeń: statyczne lub dynamiczne Sieci statyczne (ang. direct network) łącza komunikacyjne punkt-punkt, bezpośrednie sieci połączeń. Sieci dynamiczne (ang. indirect network) - łącza i przełączniki, np. ścieŝka przepływu danych pomiędzy procesorem a bankami pamięci jest tworzona na bieŝąco za pomocą przełączników łączących łącza

26 Sieci połączeń komputerów równoległych (2) Sieć statyczna Sieć dynamiczna procesor złącze sieci element przełączający

27 Sieci połączeń komputerów równoległych (3) Przełączniki (ang. switch) zbiór portów wejściowych i wyjściowych (stopień przełącznika), buforowanie danych - przy konflikcie wyjścia, zmienna marszrutyzacja - obniŝanie zagęszczenia ruchu, zwielokrotnienie (ang. multicast) - te same dane do wielu wyjść, powiązanie wejść i wyjść realizowane za pomocą: przełącznic, wieloportowych pamięci, multiplexerów-demultiplexerów, multiplexowanych magistral. Złącza sieci (ang. network interface) dostarczanie i odbieranie danych z sieci, pakietyzacja, określanie danych trasowania komunikatów, dostosowywanie prędkości buforowanie, sprawdzanie błędów transmisji. występują na magistrali I/O lub magistrali pamięci procesora

28 Topologie sieci połączeń Magistrala: Medium wspólne dla wszystkich węzłów Czas dostępu ograniczony z góry przez liczbę węzłów przyłączonych do magistrali brak skalowalności przepustowości. Koszt sieci rośnie liniowo ze wzrostem liczby przyłączonych węzłów. Wprowadzenie pamięci podręcznej znacznie obniŝa wymagania na przepustowość współdzielonej przez procesory magistrali

29 Topologie sieci połączeń Przełącznica krzyŝowa (ang. crossbar network) Cecha: brak blokowania procesorów realizujących dostęp do róŝnych portów pamięci: liczba banków >liczby procesorów Wada: brak skalowalności kosztu, jeŝeli b>p, liczba przełączników = pb > p 2 szybko rośnie z p procesory - p banki pamięci b Element przełączający

30 Topologie sieci połączeń Wielopoziomowe sieci połączeń Po oziom 3 Poziom 2 po oziom

31 Sieć omega Dla p wejść i p wyjść sieć składa się z log p poziomów Na kaŝdym z poziomów p/2 przełączników 2 we/2wy ; W zaleŝności od zgodności n-tego bitu numerów źródła i przeznaczenia dane na n- tym poziomie są przesyłane wprost lub na krzyŝ przez przełącznik. Wejścia sieci (wyjścia poziomów) i z wejściami kolejnych poziomów przełączników j połączone etapów zgodnie z regułą: j= 2i dla 0<=i<=p/2-1 j=2i+1-p dla p/2<=i<=p-1 Sieć idealnie przetasowana (ang. perfect shuffle) rysunek obok

32 Sieć omega (przykład łączenia) Sieć połączeń omega jest siecią blokującą: realizacja połączenia między 010 i 100 oraz 110 i 110 wymaga korzystania z tego samego łącza między poziomem 1 i 2 sieci

33 Statyczne sieci połączeń Sieć pełna: bezpośrednie połączenie pomiędzy kaŝdymi dwoma wierzchołkami, statyczny odpowiednik sieci na tablicy przełaczników Gwiazda: jeden procesor procesorem centralnym (jest wąskim gardłem), przekazuje komunikaty pomiędzy kaŝdymi dwoma pozostałymi węzłami, połączenie podobne do magistrali. Łańcuch: kaŝdy węzeł oprócz pierwszego i ostatniego ma dwóch sąsiadów. Łańcuch zamknięty (pierścień): kaŝdy z węzłów ma dwóch sąsiadów

34 Statyczne sieci połączeń: k-d krata (mesh) Topologie sieci połączeń Zawierają k węzłów umieszczonych w kaŝdym spośród d wymiarów k=n, d=1 łańcuch k=n, zamknięta to D wymiarowy torus k=2, D wymiarowa hyperkostka zamknięta Numeracja: Procesor w kolejnym wymiarze uzyskuje wartość 1 na kolejnej pozycji binarnej numeracji. Odległość: między węzłami jest równa liczbie róŝniących się pozycji w binarnej numeracji węzłów

35 Drzewiaste topologie sieci połączeń Sieć połączeń typu drzewo posiada jedno połączenie pomiędzy dowolną parą węzłów. Szczególne wersje drzew to gwiazda i łańcuch. Drzewo statyczne posiada element przetwarzający w kaŝdym węźle drzewa, drzewo dynamiczne układ przełączający. Drzewa charakteryzują się duŝymi wymaganiami na przepustowość wyŝszych poziomów. Rozwiązanie stanowi zwiększenie liczby łączy komunikacyjnych i przełączników na wyŝszych poziomach drzewa dynamicznego drzewo grube (ang. Fat tree). Węzeł przetwarzający Węzeł przełączający

36 Miary efektywności statycznych połączeń komunikacyjnych Średnica sieci (ang. diameter) maksymalna odległość pomiędzy dwoma węzłami przetwarzającymi. Spójność krawędziowa (ang. Connectivity) - liczby równoczesnych moŝliwych połączeń pomiędzy węzłami przetwarzającymi, pozytywna jest wysoka. Szerokość kanału (łącza) liczba bitów jednocześnie przekazywana przez łącze liczba fizycznych linii sygnałowych. Przepustowość łącza szerokość kanału * prędkość kanału Szerokość połowienia sieci (ang. bisection width) minimalna liczba łączy komunikacyjnych, które muszą być usunięte w celu podziału sieci na dwie równe połowy. Przepustowość połowienia sieci przepustowość łącza * szerokość połowienia sieci Koszt sieci liczba łączy w sieci lub wielkość szerokości połowienia sieci

37 Ocena efektywności statycznych połączeń komunikacyjnych - wartości Typ sieci Średnica Szerokość połowienia Spójność krawędziowa Koszt Pełna 1 p 2 /4 p-1 p(p-1)/2 Gwiazda p-1 drzewo binarne pełne2 log((p+1)/2) 1 1 p-1 Łancuch p p-1 Krata (mesh) 2d 2( p 1) p 2 2(p- p) Krata (mesh) 2d zamknięta 2 p /2 2 p 4 2p Hyperkostka log p ½p log p (p logp)/2 Zamknięta k krotna krata d wymiarowa d k /2 2k d-1 2d dp

38 Miary efektywności dynamicznych połączeń Śrdnica maksymalna liczba węzłów przełączających na drodze między 2 węzłami Spójność krawędziowa (ang. arc connectivity) wymagana liczba łącz do usunięcia dla podziału sieci. Szerokość połowienia minimalna liczba łączy, które musza być usunięte dla podziału na dwie sieci o równej liczbie węzłów przetwarzających. Koszt koszt łączy i koszt węzłów przełączających. Typ sieci Przełącznica krzyŝowa Omega gdzie p liczba węzłów końcowych Średnica Szerokość połowienia 1 log p p p/2 Spójność krawędziowa 1 2 Koszt (liczba przełączników) p 2 p/2 log p Drzewo dymaniczne 2log p 1 1 p

39 Współdzielenie danych w systemach równoległych W systemach równoległych dane współdzielone mogą być powielone w wielu pamięciach podręcznych. Zalety replikacji: ObniŜenie opóźnienia dostępu i wymagań przepustowości pamięci Mniej rywalizacji o dane odczytywane przez wiele procesorów Write-through cache zapis do pp jest synchronicznie odzwierciedlany w pamięci globalnej Write-back cache zapis w pamięci globalnej jest dokonywany w wyniku zewnętrznego Ŝądania odczytu danej Spójność pamięci podręcznej zapewnia, Ŝe: - dane zapisane przez jeden procesor będą udostępniane pozostałym do momentu ponownego zapisu - wszystkie procesory widzą taką samą kolejność realizacji zapisów, odczyt aktualnej wartości

40 Spójność pamięci podręcznej w systemach wieloprocesorowych Protokoły: uniewaŝniania lub uaktualniania dla zapewnienia spójności danych - zapewniają one istnienie szeregowego porządku wykonania instrukcji realizowanych współbieŝnie Protokół uniewaŝnienia powoduje, Ŝe w przypadku uaktualnienia lokalnej kopii danych pozostałe kopie danych zostają uniewaŝnione konsekwencja to wstrzymywanie przetwarzania ze względu na oczekiwanie na dane uniewaŝnione. Częściej stosowany obecnie ze względu na znaczenie przepustowości pamięci i magistrali. Protokół uaktualniania polega na tym, Ŝe w przypadku uaktualnienia lokalnej kopii danych pozostałe kopie danych zostają uaktualnione - konsekwencja to narzut komunikacyjny wynikający z przesyłania danych, które nie zawsze będą jeszcze wykorzystywane, przesłanie następuje przy kaŝdej modyfikacji kaŝdego słowa wielosłowowej linii pp

41 read Invalid/ uniewaŝniony 3 stanowy protokół zapewnienia spójności danych pamięci podręcznej Shared/ współdzelony c_write write c_write flush read c_read write Dirty/ zabrudzony read/write Linia/strona pamięci podręcznej przechodzi między stanami na skutek instrukcji realizowanych przez lokalny procesor (read/write/flush ) i akcji protokołu zapewnienia spójności w odpowiedzi na działania innych procesorów. Po modyfikacji linii pp jest ona lokalnie oznaczona jako Dirty w celu zapewnienia, Ŝe procesor ten obsłuŝy kolejne Ŝądania dostępu innych procesorów do danych w tej linii pp. Zapis wartości uniewaŝnionej jest poprzedzony pobraniem jej aktualnej wartości: procesor posiadający jej wersję aktualną udostępnia ją Ŝądającemu procesorowi i dokonuje jej zapisu do pamięci globalnej (write back cache)

42 Protokół zapewnienia spójności- przykład Procesor1 Processor2 PP Proc1 PP Proc2 PAMIĘĆ x= 5, D y=12,d read x read y x=5,s y=12,s x= 5, S y=12,s x=x+1 y=y+1 x=6,d y=13,d x= 5, I y=12,i read y read x x=6,s y=13,s x= 6,S y=13,s x= 6, S y=13,s x=x+y x= 19,Dy=13,S x= 6,I y=13,s x= 6, I y=13,s y=x+y x= 19,S y=13,i x= 19,Sy=32,D x= 19, S y=13,i Zmienne naleŝą do róŝnych linii pamięci podręcznej, zapisy wymagają uzyskania przez procesor dostępu w trybie wyłącznym, Dirty blok zabrudzony - zmodyfkowany, wyłączny dostęp Shared blok współdzielony Invalid blok niewaŝny

43 Tablica przejść linii pp między stanami stan read write flush c-read c-write shared shared dirty invalid shared invalid dirty dirty dirty invalid shared invalid invalid shared dirty invalid invalid invalid C-read i c-write ocznaczają efekt działań protokołu zapewnienia spójności, operacja flush powoduje zapisanie bloku danych do pamięci globalnej i w przypadku konieczności ponownego wykorzystania ponowne jego wczytanie

44 Spójność pamięci podręcznej protokół podglądania(ang. Snoopy cache coherence protocol). Procesor monitoruje przesłania na magistrali dotyczące swoich bloków pp. Procesor zapisuje lokalnie stan swoich danych. Wykrycie Ŝądania odczytu bloku, którego stan jest dirty powoduje przesłanie przez procesor lokalnej kopii bloku do Ŝądającego przesłania procesora. JeŜeli natomiast nastąpił zdalnie zapis do bloku pamięci, którego kopia jest lokalnie przechowywana to następuje uniewaŝnienie jego zawartości. Operacje na bloku dirty są realizowane lokalnie Mechanizm wymaga rozgłaszania do procesorów informacji o operacjach na pamięci funkcje zapewnienia spójności. Brak skalowalności. Lepsza efektywność w przypadku zapamiętywania stanu współdzielenia danych (obniŝenie wymagań przepustowości magistrali)

45 Spójność pamięci podręcznej mechanizmy katalogowe Protokół zapewnienia spójności bazujący katalogu scentralizowanym i rozproszonym - lepsza skalowalność. Pamięć centralna jest rozszerzona o pamięć katalogową (PK), w którym zapisywane są informacje na temat korzystających z poszczególnych stron pamięci procesorów. Te procesory będą uczestniczyły w dystrybucji informacji zapewniających spójność. W przypadku rozproszonych PK znika takŝe wąskie gardło jakim jest obsługa protokołu spójności w oparciu o jedną PK wtedy moŝliwa jest jednoczesna realizacja wielu operacji zarządzania spójnością. Maszyny ze sprzętowym rozwiązaniem problemu spójności pamięci podręcznej nazywane są ccnuma, mogą wykorzystywać SCI (scalable coherent interconnect) protokół IEEE

46 Koszty dostępu do pamięci dla SGI Onyx2 komputer z współdzieloną pamięcią rozproszoną (DSM) Rodzaj dostępu Czas obsługi [cykl] rejestry procesora 0 pp L1 trafienie 2-3 pp L1 brak trafienia dane ładowane z pp L pp L2 brak trafienia dane pobrane z pamięci operacyjnej, adres wirtualny w TLB brak adresu w TLB konieczność załadowania adresu fizycznego do TLB, strona znajduje się w pamięci operacyjnej brak strony pamięci - konieczność załadowania strony wirtualnej z dysku - opóźnienie 10 8 cykli ns ms

47 Zarządzanie pamięcią Pamięć wirtualna przydzielana w blokach pamięci fizycznej do procesów, konieczna translacja adresów wirtualnych na adresy fizyczne. UmoŜliwia przydział procesom większej ilości pamięci niŝ jest dostępna fizycznie w systemie. TLB (ang. translation lookaside buffer) zawiera adresy fizyczne ostatnio translowanych adresów wirtualnych. W przypadku braku adresu wirtualnego w tablicy system operacyjny określa brakujący adres i wpisuje go do TBL wykonując procedurę obsługi przerwania. W przypadku braku lini w pp (cache miss) lub braku strony w pamięci głównej (page fault) brakujące dane są szukane w pamięci niŝszego poziomu

48 Odczyt z pamięci w przypadku braku trafienia DSM + pamięć katalogowa Przesłanie Ŝądania do pamięci domowej bloku (lokalnej lub zdalnej) wg adresu. JeŜeli blok jest w pamięci to jest on pobrany z aktual. stanu: unowned do exclusive shared do shared i zapamiętanie Ŝądającego procesora JeŜeli blok jest exclusive przekazanie Ŝądania do właściciela wyłącznej kopii właściciel wyłącznej kopii przesyła dane do Ŝądającego procesora i pamięci domowej, modyfikacja katalogu pamięci domowej dla uwzględnienia faktu współdzielenia danych przez procesory i zapisu informacji o tych procesorach

49 Zapis do pamięci - DSM pamięć katalogowa Generacja Ŝądania zapisu do pp 1. jeŝeli danych brak danych to Ŝądanie odczytu z wykluczającym się dostępem jest skierowane do pamięci domowej bloku, 2. jeŝeli dane - exclusive lub dirty to zapis, 3. jeŝeli dane są ale nie są exclusive lub dirty to Ŝądanie modyfikacji dla uzyskania wyłącznej własności danych wysłane jest do pamięci domowej bloku

50 Zapis do pamięci - DSM pamięć katalogowa Obsługa Ŝądań w pamięci domowej bloku (stan bloku): 1. unowned do exclusive a potwierdzenie jest przesłane do procesora Ŝądającego dostępu 2. shared to do wszystkich procesorów zgodnie z zawartością pamięci katalogowej następuje wysłanie Ŝądań uniewaŝnienia ich kopii, stan w katalogu domowym zmienia się na exclusive, a potwierdzenie jest przesłane do procesora Ŝądającego dostępu, procesory, które otrzymały Ŝądanie uniewaŝnienia wysyłają potwierdzenie do procesora Ŝądającego dostępu. 3. exclusive to do zdalnego właściciela wysyłany jest Ŝądanie odczytu z wykluczającym się dostępem, ten natomiast przekazuje dane do Ŝądającego ich procesora i przekazuje do pamięci domowej bloku informacje o zmianie właściciela danych

51 Koszty komunikacji w komputerach równoległych Koszt komunikacji zaleŝny jest od: modelu programowania (SM, MP) topologii połączeń, obsługi i marszrutyzacji danych i protokołów programowych

52 Wymiana komunikatów w systemach równoległych (1) Inne cechy niŝ w systemach rozproszonych: grupowe operacje wymiany danych na wielu ścieŝkach równolegle, specyficzna architektura sieci komunikacyjnej. Typy operacji wymiany danych: 1 do 1 - kaŝdy wysyła jeden i kaŝdy odbiera jeden, rozgłaszanie (ang. broadcasting) - ta sama informacja jest rozsyłana z jednego procesora do wszystkich pozostałych, plotkowanie (ang. gossiping) - kaŝdy procesor wysyła tę samą informację do pozostałych, scattering jeden procesor rozsyła róŝne dane do pozostałych, gathering jeden procesor zbiera dane od pozostałych, multiscattering/multigathering kaŝdy procesor uczestniczy w wysyłaniu/odbieraniu danych

53 Wymiana komunikatów w systemach równoległych (2) Kryteria optymalizacji wymiany komunikatów: minimalizacja czasu wymiany danych, np. minimalizacvja opóźnienia sieciowego (ang. network latency) - czasu przejścia przez sieć w najgorszym przypadku, maksymalizacja przepustowości sieci (liczba przesyłanych komunikatów, liczba bajtów w jednostce czasu), niezawodność zdolność unikania zakleszczeń, odporność komunikacji na uszkodzenia poszczególnych połączeń, funkcjonalność, złoŝoność, skalowalność

54 Wymiana komunikatów w systemach równoległych (3) Komunikat (dowolnej długości) podstawowa jednostka logiczna wymiany informacji między węzłami sieci. Pakiet (stałej długości) podstawowa jednostka fizyczna wymiany informacji między węzłami sieci, zawiera: adres docelowy, numer kolejny w ramach komunikatu pozwala na odtworzenie komunikatu przy róŝnej kolejności dostarczania, róŝnymi drogami. Flit słowo - część składowa komunikatu - nie posiada struktury logicznej, mniejszy niŝ pakiety

55 Koszty przesyłania komunikatów Parametry określające koszty przesyłania komunikatów: czas inicjowania komunikacji (ang. startup time) t s przygotowanie komunikatu, wykonanie algorytmu routingu, nawiązanie połączenia z ruterem. Działania realizowane jednorazowo na transmisję. czas przejścia przez odcinek sieci - (ang. per-hop time) t h (opóźnienie węzła) czas na przejście nagłówka komunikatu do kolejnego - bezpośrednio połączonego węzła sieci związany z określeniem wyjścia przez które komunikat ma opuścić węzeł. czas transmisji słowa (ang. per word transfer time) t w - czas przesłania przez łącze jednego słowa komunikatu; jest odwrotnością przepustowości kanału, uwzględnia narzuty sieci i buforowania

56 Koszty przesyłania komunikatu w komputerach równoległych Techniki przekazywania (rutowania) komunikatów w komputerach równoległych: store-and-forward cut-through routing store-and-forward routing (przesyłanie poprzez zapisanie komunikatu i przekazanie dalej) komunikat jest przesyłany w całości między pośredniczącymi węzłami jest w całości buforowany t comm = t s +(mt w +t h )l gdzie m wielkość komunikatu a l liczba łączy węzły sieci p3 p2 p1 p0 czas

57 Koszty przesyłania komunikatu w komputerach równoległych(2) packet routing (przekazywanie komunikatów poprzez przesyłanie pakietów) komunikat dzielony na pakiety transmitowane i buforowane oddzielnie t comm = t s +t h l +mt w* gdzie t w* = t podziału +t w uwzględniające wzrost rozmiaru komunikatu p3 p2 p1 p0 czas

58 Koszty przesyłania komunikatu w komputerach równoległych cut-through routing (wormhole routing) dalsza minimalizacja czasu wszystkie pakiety tą samą droga (brak przełączania) dostarczanie w kolejności nadawania (brak numeracji) kontrola błędów na poziomie komunikatu nie pakietu (mniejsze narzuty detekcji i korekcji błędu) proste mechanizmy detekcji błędów, gdyŝ mało błędów wpierw przesłanie pakietu nagłówkowego dla nawiązania połączenia i rezerwacji ścieŝki a następnie tą samą drogą flity, flity po odbiorze w węźle pośrednim przesyłane natychmiast dalej czas komunikacji t comm = t s +t h l +mt w z wzoru wynika, Ŝe minimalizacja czasu komunikacji moŝliwa poprzez: przesyłanie danych zblokowanych (wiele komunikatów razem), minimalizacja ilości danych przesyłanych, minimalizacja odległości. niebezpieczeństwo zakleszczenia w przypadku przeciąŝenia sieci połączeń modyfikacja wartości t w* =t w p/b; b = szerokość podziału sieci p liczba procesorów t

59 Algorytmy trasowania (ang. routing) w sieciach połączeń systemów równoległych Cechy algorytmów: minimalny/nieminimalny, deterministyczny, adaptacyjny (zagęszczenia ruchu). Określony według wymiarów sieci: XY-routing, E-cube routing XY-routing w 2D sieci (bez zamknięcia) przesyłamy komunikaty wzdłuŝ osi X do kolumny właściwej węzłowi przeznaczenia, a następnie posuwany się w tej kolumnie do celu. E-cube routing w hyperkostce d-wymiarowej zakładamy, Ŝe jedynka na najstarszej pozycji etykiety (o długości d) oznacza wymiar, w którym węzeł leŝy, liczba róŝnych wartości etykiety źródła i przeznaczenia określa odległość

60 Algorytm trasowania: E-cube routing Z PS Y 110 X PD XOR 001 = 101 TRANSMISJA WZDŁUś OSI x 101 XOR 001 = 100 TRANSMISJA WZDŁUś OSI z Komunikat jest wysyłany wzdłuŝ wymiaru d odpowiadającego najmniej znaczącej pozycji (porównaj etykietowanie), na której róŝnią się etykiety (aktualnego rekurencyjnie) źródła i przeznaczenia komunikatu

61 Trudności dotyczące trasowania komunikatów Zakleszczenie (ang. deadlock) spowodowane przez cykl w oczekiwaniu na: bufor (store and forward) rozwiązanie: zastosowanie buforów wirtualnych kanał (cut-through routing) (rozwiązania następny slajd) pełne bufory uniemoŝliwiają przesłanie pakietów rezerwacja kanałów prowadzi do cyklicznego oczekiwania na kanał

62 Trudności dotyczące trasowania komunikatów cut-through routing Postępowanie w przypadku kolizji Ŝądania przez dwa pakiety tego samego kanału (wyjścia): - buforowanie pakietu w zablokowanym węźle do chwili uwolnienia kanału, - blokowanie komunikacji z oczekiwaniem flitów w ich aktualnych lokalizacjach na zwolnienie kanału, - usuwanie i retransmisja, - objazd (ang. detour) kierowanie pakietu na inną ścieŝkę, aby ominąć zajęty kanał

63 Koszty komunikacji w maszynach z pamięcią współdzieloną - analiza jakościowa Struktura pamięci dostęp do zmiennych lokalnych znacznie szybszy niŝ zmiennych zdalnych (które dane lokalne a które zdalne? - nie zawsze jasne i moŝliwe do określenia). Ograniczone wielkości pamięci podręcznej przekroczenie rozmiaru, nadpisanie danych, konieczność wielokrotnego pobierania, narzut operacji zapewnienia spójności danych. Kolejność operacji na wielu procesorach wpływa na konieczność uniewaŝnienia i uaktualniania danych. Optymalizacja kodu przez zapewnienie (permutacja struktury danych) dostępu do kolejno ulokowanych danych w pamięci (aktualnie w pamięci podręcznej). Wstępne pobieranie danych wprowadzane przez kompilatory i sprzęt pozwala ukryć opóźnienia dostępu do pamięci. Niezamierzone współdzielenie (false sharing) dodatkowe narzuty przez przechowywanie w wielu pamięciach podręcznych (ze względu na rozmiar linii pamięci) danych, które muszą być poddane działaniom zapewnienia spójności mimo, Ŝe praktycznie nie są współdzielone. Rywalizacja w dostępie współdzielonym opóźnienia dostępu wynikające z współubiegania się o te same dane

64 Koszty komunikacji w maszynach z pamięcią współdzieloną analiza ilościowa Określenie czasu dostępu do odczytu m słów w maszynach z pamięcią współdzieloną: t a = t s + m t w czas dostępu do odczytu bez rywalizacji (w przypadku dostępu do tych samych danych przez róŝne procesory ze względu na konieczne uszeregowanie transmisji czasy t s się zwielokrotniają). t s - współczynnik czasu dostępu wynikający z narzutów: mechanizmu spójności, sieci połączeń i pamięci, uwzględniany raz we wzorze na czas dostępu do ciągu m słów współdzielonych (nawet większych od rozmiaru pp ze względu na mechanizmy ukrywania opóźnienia) t w - współczynnik czasu dostępu do jednego słowa w pamięci podręcznej W przypadku konieczności zapisu współdzielonych danych przez jeden z procesorów konieczne uwzględnienie zapisu (przez jeden) i (odczytu przez pozostałe) aktualnej wartości danej z pamięci. Wzór nie uwzględnia niezamierzonego współdzielenia oraz nakładania się obliczeń i komunikacji

65 Przydział zadań do procesorów - odwzorowanie (zagnieŝdŝenie) grafów Graf wyjściowy - graf zadań ze strukturą komunikacji (połączeń między zadaniami). Graf docelowy - struktura systemu, 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

66 Odwzorowanie grafów ZagnieŜdŜenie łańcucha w hiperkostce. Kolejne 2 d elementów (oznaczonych od 0 do 2 d -1) 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 1 i odbiciu lustrzanym wartości wcześniejszych. Brak przeciąŝenia i odstęp=1, gdyŝ węzły których etykiety róŝnią się na jednej pozycji mają bezpośrednie łącze łańcuch hyperkostka

67 ZagnieŜdŜenie kraty w hiperkostce 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,16... 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=1, gdyŝ węzły komunikujące się - których etykiety róŝnią się na jednej pozycji - mają bezpośrednie łącze. Jak będzie k 8-2 na h 2 6 lub na h 2 4 (0,0)00 00 (0,1)00 01 (0,2)00 11 (0,3) ,3 1, ,3 2,2 (1,0)01 00 (1,1)01 01 (1,2)01 11 (1,3) , , , ,1 (2,0)11 00 (2,1)11 01 (2,2)11 11 (2,3) , , , ,2 (3,0)10 00 (3,1)10 01 (3,2)10 11 (3,3) , , ,0 3,

68 Odwzorowanie kraty w łańcuch 1,1 1,2 1,3 1,4 2,4 2,3 2,2 2,1 3,1 3,2 3,3 3,4 4,4 4,3 4,2 4,1 Krata otwarta 4X4 odwzorowana w łańcuch 16 elementowy PrzeciąŜenie wynosi 5 (linia przerywana) w ogólności pierwiastek(p) + 1. Dolne ograniczenie przeciąŝenia: Iloraz szerokości podziału odwzorowywanych sieci np. krata 4, łańcuch 1 więc 4 Ile wynosi maksymalny odstęp? 7 Jak odwzorować łańcuch w kratę?

69 Odwzorowanie hiperkostki w k-2 kratę 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-1 ) oraz kraty 2 d/2 i wynosi 2 d/2-1. Dla p = 2 d procesorów ½ p 1.16 procesorów hiperkostka 4 wymiarowa 2.podział na 4 hiperkostki 2 wymiarowe 3.odwzorowanie hkostek krat na łańcuchy 4.przeciąŜenie wynosi

70 Przydział procesów do procesorów a projektowanie sieci połączeń MoŜliwe jest odwzorowanie sieci gęstszych w sieci rzadsze z odpowiednim przeciąŝeniem Konieczne jest zastosowanie wtedy łączy o większej przepustowości dla kompensacji przeciąŝenia. Przykład: kraty o przepustowości łączy większej tyle razy ile wynosi przeciąŝenie enie będą zachowywać się analogicznie do hiperkostki (mającej większą gęstość). Kraty o wysokiej przepustowości łączy nazywa się tłustymi kratami, posiadają one tę samą przepustowość podziału sieci i większy rozmiar. Wynikający ze wzrostu rozmiaru wzrost kosztu komunikacji moŝe być minimalizowany poprzez odpowiednie trasowanie komunikatów (cut through routing)

71 Konflikt koszt-efektywność (1) krata i hiperkostka Koszt sieci proporcjonalny do liczby linii sygnałowych koszt p-węzłowej 2 wymiarowej kraty zamkniętej - o 2p łączach i (log p)/4 liniach na łącze koszt p-węzłowej hiperkostki o ½ p logp łączach średnia odległość: krata ½ p, hiperkostka ½log p Ze względu na dodatkowe linie sygnałowe i równoległość przesyłania danych t wkrata=t whkostka 4/log p czas transmisji dla cut-through routing t s +t h l av +t w m czas transmisji krata t s + ½ p t h + 4/log p m t w czas transmisji hiperkostka - t s + ½log p t h + m t w Który czas większy? dla duŝych komunikatów i p>16 czas transmisji dla kraty krótszy Czas transmisji dla store and forward?

72 Konflikt koszt-efektywność (2) Koszt sieci proporcjonalny do szerokość połowienia sieci Koszt p-węzłowej kraty zamkniętej o szerokości połowienia 2 p i p /4 liniach na łącze Koszt p-węzłowej hiperkostki o szerokości połowienia p/2 i jedną linią na łącze, średnia odległość krata ½ p, hiperkostka ½log p Ze względu na dodatkowe linie sygnałowe i równoległość przesyłania danych t wkrata =t whkostka 4/ p czas transmisji dla store and forward t s +(mt w +t h )l czas transmisji krata t s + ½ p (t h + 4/ p m t w ) 2 mt w czas transmisji hiperkostka - t s + ½log p (t h +mt w ) ½log p mt w Dla duŝych komunikatów i p>16 czas transmisji dla kraty krótszy

73 Komputery wektorowe definicje komputer wektorowy - komputer zaprojektowany do realizacji operacji arytmetycznych na długich wektorach lub tablicach, wysoka efektywność przetwarzania wynika z wykorzystania przetwarzania potokowego wektor - lista elementów w pamięci komputera, zdefiniowany za pomocą adresu początkowego, rozmiaru i przesunięcia (ang. stride) rejestr wektorowy - pamięć pośrednicząca ca pomiędzy jednostką przetwarzania a pamięcią komputera wektoryzacja - zamiana sekwencji identycznych operacji arytmetycznych na jedną instrukcję potoki - jednostki arytmetyczne słuŝące do efektywnego przetwarzania elementów wektorów przetwarzanie potokowe - nakładanie się realizacji róŝnych części lub etapów operacji arytmetycznej na róŝnych elementach wektora

74 Dodawanie sekwencyjne w potoku załóŝmy, Ŝe dodawanie zmiennoprzecinkowe jest realizowane w potoku składającym się z 6 faz: A porównanie wykładników składników B przesunięcie mantysy składnika o mniejszym wykładniku, do uzyskania zgodności wykładników C dodanie mantysy składników D zaokrąglenie E sprawdzenie czy wystąpił błąd np. przepełnienie F normalizacja wyniku zakładamy, Ŝe kaŝda faza zabiera t jednostek czasu wynik dla kaŝdej pary elementów sumowanych uzyskamy po czasie 6t jeŝeli dodajemy n liczb to wynik uzyskujemy po czasie 6nt

75 Komputery wektorowe dodawanie potokowe kaŝda faza operacji dodawania jest realizowana równocześnie na parze róŝnych składników po zakończeniu fazy A dla pierwszej pary składników, są one przesuwane do fazy B, a faza A jest realizowana dla kolejnej pary składników kaŝda z faz zabiera t jednostek czasu wynik dla pierwszej pary składników uzyskujemy po czasie 6t, wynik dla kaŝdej następnej pary wyników po czasie t sumowania n liczb moŝna dokonać w czasie (n+5)t dla duŝej liczby elementów przetwarzanie potokowe jest k razy szybsze od sekwencyjnego (gdzie k jest liczbą faz potoku)

76 Komputery wektorowe łańcuchowanie systemy wektorowe posiadają wiele potoków przetwarzania łańcuchowanie to skierowanie wyjścia z jednego potoku na wejście kolejnego, co eliminuje potrzebę zapisu wyników pierwszej operacji do rejestru łańcuchowanie moŝe zwiększyć liczbę operacji realizowanych równocześnie, a po czasie trwania fazy potoku pojawia się wynik dwóch lub więcej operacji (w zaleŝności od liczby łańcuchowanych potoków)

77 Komputery wektorowe kolejność realizacji operacji wektorowych przetwarzanie wektorowe moŝe zmieniać kolejność operacji w ramach pętli for ( i= 1; i <= 64 ; i++) { l[i]=j[i]+k[i]; n[i]=l[i]+m[i]; } kolejność przetwarzania skalarnego: wyznaczanie l[1],n[1],l[2],n[2]... kolejność przetwarzania wektorowego: wyznaczenie l[1],l[2],..,l[64],n[1],n[2]... ustalana przez sprzęt moŝliwość nadpisania zmiennej lub braku przypisania (określenia) wykorzystywanej zmiennej ze względu na inną kolejność realizacji działań wektorowa zaleŝność danych występuje, gdy zastosowanie wprost (bez odpowiedniej modyfikacji kodu) przetwarzania wektorowego prowadzi do błędnych (nieoczekiwanych) wyników

78 Modele komunikacyjne systemów równoległych Wymiana danych pomiędzy współbieŝnymi zadaniami odbywa się w oparciu o: dostęp do danych we współdzielonej przestrzeni adresowej, wymianę komunikatów

79 Systemy wieloprocesorowe poprawność dostępów Standardowe środowiska to wątki POSIX i dyrektywy OpenMP. Synchronizacja ciągu dostępów odczyt/zapis poprzez zastosowanie zamków (ang. lock). Systemy z pamięcią podręczną wymagają mechanizmu translacji adresu do określenia pozycji danych i zapewnienia właściwej realizacji współbieŝnych operacji na wielu kopiach tej samej pamięci (mechanizm spójności pamięci podręcznej). Wywołania: put i get, uaktualnienie jednej z kopii zmiennej powoduje uaktualnienie lub uniewaŝnienie innych kopii

80 Systemy z przekazywaniem komunikatów Zbiór węzłów przetwarzających z prywatną przestrzenią adresowa. Węzeł zawiera jeden procesor lub system wieloprocesorowy z pamięcią współdzielona naleŝą: systemy wielokomputerowe z nie współdzieloną przestrzenią adresową, klastry stacji roboczych. Model z przekazywaniem komunikatów realizacja róŝnych programów na kaŝdym z węzłów. Interakcje realizowane za pomocą wysyłania i odbierania komunikatów send, receive, whoami, numprocs/ MPI, PVM. Emulacja architektur: model wymiany komunikatów w komputerach o współdzielonej pamięci model współdzielonej pamięci adresowej w systemach wielokomputerowych z prywatną przestrzenią adresową (co gdzie łatwiej/ trudniej?)

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

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

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

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

OWS sprzęt 1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Modyfikacja

OWS sprzęt 1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Modyfikacja OWS sprzęt 1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Modyfikacja 25.03.2013 Wewnętrzna współbieŝność przetwarzania procesora Uwarunkowania: 1. Dotychczas imponujący wzrost prędkości taktowania

Bardziej szczegółowo

Przetwarzanie równoległesprzęt

Przetwarzanie równoległesprzęt Przetwarzanie równoległesprzęt 1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: przed wykładem 2013/2014 Wewnętrzna współbieżność przetwarzania procesora Uwarunkowania: 1. Dotychczas imponujący

Bardziej szczegółowo

PR sprzęt (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: jesień 2016

PR sprzęt (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: jesień 2016 PR sprzęt (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: jesień 2016 Wewnętrzna współbieżność przetwarzania procesora Uwarunkowania: 1. Dotychczas imponujący wzrost prędkości taktowania procesora

Bardziej szczegółowo

OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2016

OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2016 OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2016 Wewnętrzna współbieżność przetwarzania procesora Uwarunkowania: 1. Dotychczas imponujący wzrost prędkości taktowania procesora

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

OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2017

OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2017 OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2017 Wewnętrzna współbieżność przetwarzania procesora Uwarunkowania: 1. Dotychczas imponujący wzrost prędkości taktowania procesora

Bardziej szczegółowo

OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2017

OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2017 OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2017 Wewnętrzna współbieżność przetwarzania procesora Uwarunkowania: 1. Dotychczas imponujący wzrost prędkości taktowania procesora

Bardziej szczegółowo

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

Wydajność komunikacji grupowej w obliczeniach równoległych. Krzysztof Banaś Obliczenia wysokiej wydajności 1 Wydajność komunikacji grupowej w obliczeniach równoległych Krzysztof Banaś Obliczenia wysokiej wydajności 1 Sieci połączeń Topologie sieci statycznych: Sieć w pełni połączona Gwiazda Kraty: 1D, 2D, 3D

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

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

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

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności. Procesory wielordzeniowe (multiprocessor on a chip) 1 Procesory wielordzeniowe 2 Procesory wielordzeniowe 3 Konsekwencje prawa Moore'a 4 Procesory wielordzeniowe 5 Intel Nehalem 6 Architektura Intel Nehalem

Bardziej szczegółowo

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności. Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Organizacja pamięci Organizacja pamięci współczesnych systemów komputerowych

Bardziej szczegółowo

Stronicowanie w systemie pamięci wirtualnej

Stronicowanie w systemie pamięci wirtualnej Pamięć wirtualna Stronicowanie w systemie pamięci wirtualnej Stronicowanie z wymianą stron pomiędzy pamięcią pierwszego i drugiego rzędu. Zalety w porównaniu z prostym stronicowaniem: rozszerzenie przestrzeni

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

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 14 Procesory równoległe Klasyfikacja systemów wieloprocesorowych Luźno powiązane systemy wieloprocesorowe Każdy procesor ma własną pamięć główną i kanały wejścia-wyjścia.

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

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 13 Jan Kazimirski 1 KOMPUTERY RÓWNOLEGŁE 2 Klasyfikacja systemów komputerowych SISD Single Instruction, Single Data stream SIMD Single Instruction, Multiple Data stream MISD

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 12 Jan Kazimirski 1 Magistrale systemowe 2 Magistrale Magistrala medium łączące dwa lub więcej urządzeń Sygnał przesyłany magistralą może być odbierany przez wiele urządzeń

Bardziej szczegółowo

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Wydajność obliczeń a architektura procesorów Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Wydajność komputerów Modele wydajności-> szacowanie czasu wykonania zadania Wydajność szybkość realizacji wyznaczonych

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

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

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

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

Dr inż. hab. Siergiej Fialko, IF-PK,

Dr inż. hab. Siergiej Fialko, IF-PK, Dr inż. hab. Siergiej Fialko, IF-PK, http://torus.uck.pk.edu.pl/~fialko sfialko@riad.pk.edu.pl 1 Osobliwości przedmiotu W podanym kursie główna uwaga będzie przydzielona osobliwościom symulacji komputerowych

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

Algorytmy dla maszyny PRAM

Algorytmy dla maszyny PRAM Instytut Informatyki 21 listopada 2015 PRAM Podstawowym modelem służącym do badań algorytmów równoległych jest maszyna typu PRAM. Jej głównymi składnikami są globalna pamięć oraz zbiór procesorów. Do rozważań

Bardziej szczegółowo

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz] Procesor ma architekturę akumulatorową. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset or Rx, Ry, A add Rx load A, [Rz] push Rx sub Rx, #3, A load Rx, [A] Procesor ma architekturę rejestrową

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

Podstawy Techniki Mikroprocesorowej wykład 13: MIMD. Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej

Podstawy Techniki Mikroprocesorowej wykład 13: MIMD. Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej Podstawy Techniki Mikroprocesorowej wykład 13: MIMD Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej e-mail: Jacek.Mazurkiewicz@pwr.edu.pl Kompjuter eta jest i klasyfikacja jednostka centralna

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Miejsce, rola i zadania systemu operacyjnego

Bardziej szczegółowo

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wprowadzenie Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego

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

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

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4 Pamięć wirtualna Przygotował: Ryszard Kijaka Wykład 4 Wstęp główny podział to: PM- do pamięci masowych należą wszelkiego rodzaju pamięci na nośnikach magnetycznych, takie jak dyski twarde i elastyczne,

Bardziej szczegółowo

Podstawy Informatyki Systemy sterowane przepływem argumentów

Podstawy Informatyki Systemy sterowane przepływem argumentów Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,

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

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

Architektura mikroprocesorów TEO 2009/2010

Architektura mikroprocesorów TEO 2009/2010 Architektura mikroprocesorów TEO 2009/2010 Plan wykładów Wykład 1: - Wstęp. Klasyfikacje mikroprocesorów Wykład 2: - Mikrokontrolery 8-bit: AVR, PIC Wykład 3: - Mikrokontrolery 8-bit: 8051, ST7 Wykład

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

Budowa komputera Komputer computer computare

Budowa komputera Komputer computer computare 11. Budowa komputera Komputer (z ang. computer od łac. computare obliczać) urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału

Bardziej szczegółowo

Architektura potokowa RISC

Architektura potokowa RISC Architektura potokowa RISC Podział zadania na odrębne części i niezależny sprzęt szeregowe Brak nawrotów" podczas pracy potokowe Przetwarzanie szeregowe i potokowe Podział instrukcji na fazy wykonania

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

Architektura komputerów. Układy wejścia-wyjścia komputera

Architektura komputerów. Układy wejścia-wyjścia komputera Architektura komputerów Układy wejścia-wyjścia komputera Wspópraca komputera z urządzeniami zewnętrznymi Integracja urządzeń w systemach: sprzętowa - interfejs programowa - protokół sterujący Interfejs

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

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

21 Model z pamięcią współdzieloną (model PRAM) - Parallel Random Access Machine

21 Model z pamięcią współdzieloną (model PRAM) - Parallel Random Access Machine 21 Model z pamięcią współdzieloną (model PRAM) - Parallel Random Access Machine Model PRAM zapewnia możliwość jednoczesnego dostępu każdego spośród n procesorów o architekturze RAM do wspólnej pamięci

Bardziej szczegółowo

Mikroprocesory rodziny INTEL 80x86

Mikroprocesory rodziny INTEL 80x86 Mikroprocesory rodziny INTEL 80x86 Podstawowe wła ciwo ci procesora PENTIUM Rodzina procesorów INTEL 80x86 obejmuje mikroprocesory Intel 8086, 8088, 80286, 80386, 80486 oraz mikroprocesory PENTIUM. Wprowadzając

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

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

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

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

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

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 11 Wejście - wyjście Urządzenia zewnętrzne Wyjściowe monitor drukarka Wejściowe klawiatura, mysz dyski, skanery Komunikacyjne karta sieciowa, modem Urządzenie zewnętrzne

Bardziej szczegółowo

Literatura. 3/26/2018 Przetwarzanie równoległe - wstęp 1

Literatura. 3/26/2018 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

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

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Plan wykładu Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka spójności

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Przydział ciągły (ang. contiguous allocation) cały plik zajmuje ciąg kolejnych bloków Przydział listowy (łańcuchowy, ang. linked

Bardziej szczegółowo

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386 Budowa procesora 80386 Struktura wewnętrzna logiczna procesora 80386 Pierwszy prawdziwy procesor 32-bitowy. Zawiera wewnętrzne 32-bitowe rejestry (omówione zostaną w modułach następnych), pozwalające przetwarzać

Bardziej szczegółowo

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego

Bardziej szczegółowo

ARCHITEKTURA PROCESORA,

ARCHITEKTURA PROCESORA, ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to przede wszystkim: a. formaty rozkazów, b. lista rozkazów, c. rejestry dostępne programowo, d. sposoby adresowania pamięci, e. sposoby współpracy

Bardziej szczegółowo

Magistrala systemowa (System Bus)

Magistrala systemowa (System Bus) Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki systemowa (System Bus) Pamięć operacyjna ROM, RAM Jednostka centralna Układy we/wy In/Out Wstęp do Informatyki

Bardziej szczegółowo

System obliczeniowy laboratorium oraz. mnożenia macierzy

System obliczeniowy laboratorium oraz. mnożenia macierzy System obliczeniowy laboratorium.7. oraz przykładowe wyniki efektywności mnożenia macierzy opracował: Rafał Walkowiak Materiały dla studentów informatyki studia niestacjonarne październik 1 SYSTEMY DLA

Bardziej szczegółowo

Mikroprocesor Operacje wejścia / wyjścia

Mikroprocesor Operacje wejścia / wyjścia Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych

Bardziej szczegółowo

Budowa Mikrokomputera

Budowa Mikrokomputera Budowa Mikrokomputera Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Podstawowe elementy komputera Procesor Pamięć Magistrala (2/16) Płyta główna (ang. mainboard, motherboard) płyta drukowana komputera,

Bardziej szczegółowo

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

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

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka PAMIĘCI Część 1 Przygotował: Ryszard Kijanka WSTĘP Pamięci półprzewodnikowe są jednym z kluczowych elementów systemów cyfrowych. Służą do przechowywania informacji w postaci cyfrowej. Liczba informacji,

Bardziej szczegółowo

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,

Bardziej szczegółowo

Organizacja typowego mikroprocesora

Organizacja typowego mikroprocesora Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają

Bardziej szczegółowo

Obliczenia Wysokiej Wydajności

Obliczenia Wysokiej Wydajności Obliczenia wysokiej wydajności 1 Wydajność obliczeń Wydajność jest (obok poprawności, niezawodności, bezpieczeństwa, ergonomiczności i łatwości stosowania i pielęgnacji) jedną z najważniejszych charakterystyk

Bardziej szczegółowo

Zrównoleglenie i przetwarzanie potokowe

Zrównoleglenie i przetwarzanie potokowe Zrównoleglenie i przetwarzanie potokowe Zrównoleglenie wysoka wydajność pozostaje osiągnięta w efekcie jednoczesnego wykonania różnych części zagadnienia. Przetwarzanie potokowe proces jest rozdzielony

Bardziej szczegółowo

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci Układ Podstawy Informatyki - Układ bezpośredniego dostępu do pamięci alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu Układ 1 Układ Wymiana informacji Idea Zasady pracy maszyny W Architektura

Bardziej szczegółowo

Urządzenia wejścia-wyjścia

Urządzenia wejścia-wyjścia Urządzenia wejścia-wyjścia Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Klasyfikacja urządzeń wejścia-wyjścia Struktura mechanizmu wejścia-wyjścia (sprzętu i oprogramowania) Interakcja

Bardziej szczegółowo

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,

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

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki. Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów

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

Logiczny model komputera i działanie procesora. Część 1.

Logiczny model komputera i działanie procesora. Część 1. Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.

Bardziej szczegółowo

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów

Bardziej szczegółowo

Zasady projektowania algorytmów równoległych

Zasady projektowania algorytmów równoległych Zasady projektowania algorytmów równoległych Rafał Walkowiak jesień 2 /4/23 Zasady projektowania Algorytm równoległy Algorytm sekwencyjny: sekwencja kroków rozwiązujących problem przy użyciu komputera

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 5 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) c.d. 2 Architektura CPU Jednostka arytmetyczno-logiczna (ALU) Rejestry Układ sterujący przebiegiem programu

Bardziej szczegółowo

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer Sprzęt komputerowy 2 Autor prezentacji: 1 prof. dr hab. Maria Hilczer Budowa komputera Magistrala Procesor Pamięć Układy I/O 2 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący

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

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

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD Jan Kazimirski Pamięć wirtualna Stronicowanie Pamięć podzielona na niewielki bloki Bloki procesu to strony a bloki fizyczne to ramki System operacyjny przechowuje dla każdego

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

System pamięci. Pamięć wirtualna

System pamięci. Pamięć wirtualna System pamięci Pamięć wirtualna Pamięć wirtualna Model pamięci cache+ram nie jest jeszcze realistyczny W rzeczywistych systemach działa wiele programów jednocześnie Każdy może używać tej samej przestrzeni

Bardziej szczegółowo

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/2014 13.12.2013

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/2014 13.12.2013 Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci półprzewodnikowe, Betty Prince, WNT Ptc 2013/2014 13.12.2013 Pamięci statyczne i dynamiczne Pamięci statyczne SRAM przechowywanie informacji

Bardziej szczegółowo

Wykład 14. Zagadnienia związane z systemem IO

Wykład 14. Zagadnienia związane z systemem IO Wykład 14 Zagadnienia związane z systemem IO Wprowadzenie Urządzenia I/O zróżnicowane ze względu na Zachowanie: wejście, wyjście, magazynowanie Partnera: człowiek lub maszyna Szybkość transferu: bajty

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