TEORETYCZNE MODELE KOMPUTERÓW RÓWNOLEGŁYCH

Slides:



Advertisements
Podobne prezentacje
ANALIZA SIECIOWA PRZEDSIĘWZIĘĆ konstrukcja harmonogramu
Advertisements

PRAM.
Sortowanie przez scalanie
Podstawowe pojęcia programowania współbieżnego
Wykonał : Marcin Sparniuk
SYSTEMY ROZPROSZONE Pamięć.
PROGRAMOWANIE STRUKTURALNE
Badania operacyjne. Wykład 1
Rozszerzalność systemów rozproszonych
ALGORYTMY I STRUKTURY DANYCH
Wprowadzenie System rozproszony jest kolekcją niezależnych, autonomicznych komputerów, które dla użytkownika prezentują się jak jeden komputer. Można wyróżnic.
Współprogramy II W tym wykładzie pogłębimy naszą znajomość z współprogramami. Omówimy współpracę procedur rekurencyjnych i współprogramów, wprowadzimy.
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Urządzenia sieciowe Topologie sieci Standardy sieci Koniec.
ZŁOŻONOŚĆ ALGORYTMÓW RÓWNOLEGŁYCH
LITERATURA M.Ben-Ari, Podstawy programowania współbieżnego i rozproszonego, WN-T, 1996 I.Foster, Designing and Building parallel programs, Cocepts and.
Wykład nr 7: Synchronizacja procesów
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Sztuczna Inteligencja Reprezentacja wiedzy II Systemy produkcyjne Włodzisław Duch Katedra Informatyki Stosowanej UMK Google: W. Duch.
Magistrala & mostki PN/PD
Komputer, procesor, rozkaz.
ZARZĄDZANIE PROCESAMI
Problem rozbieżności czasów jednym z wielu problemów pojawiających się w systemach rozproszonych jest rozbieżność wartości zegarów na poszczególnych węzłach-maszynach.
4. TEORETYCZNE MODELE PROCESÓW WSPÓŁBIEŻNYCH Teoretyczne modele uwzględniają wybrane cechy rzeczywistych procesów, stanowiąc kompromis pomiędzy łatwością
Programowanie współbieżne
Efektywna transmisja plików za pomocą TCP Piotr Kasprzyk Instytut Informatyki Politechniki Śląskiej.
TOPOLOGIA SIECI LAN.
Komputery macierzowe.
Układy sekwencyjne pojęcia podstawowe.
Architektura komputerów
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
20 września 2003r. Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie Wstęp do algorytmiki Autor: Marek Magiera.
Sekwencyjne bloki funkcjonalne
Zasada działania komputera
Autor: Justyna Radomska
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Topologie sieci lokalnych.
Architektura komputerów
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
Architektura PC.
Wybrane zagadnienia relacyjnych baz danych
Sieci komputerowe Anna Wysocka.
Wykład 7 Synchronizacja procesów i wątków
Ogólna struktura programu w TP
W ą t e k (lekki proces) thread.
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
Algorytmika.
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Procesor – charakterystyka elementów systemu. Parametry procesora.
BUDOWA I DZIAŁANIE SIECI KOMPUTEROWYCH LEKCJA 2: Sprzęt sieciowy i podstawowe topologie Dariusz Chaładyniak.
Procesor, pamięć, przerwania, WE/WY, …
Grafika i komunikacja człowieka z komputerem
Pamięć DRAM.
Struktura wewnętrzna mikrokontrolera zamkniętego
Pamięć RAM Pamięć RAM.
Architektury procesorów rdzeniowych mikrokontrolerów.
Pamięć SRAM.
Algorytmy równoległe Algorytm równoległy pozwala na wykonywanie w danej chwili więcej niż jednej operacji. EREW - wyłączny odczyt i wyłączny zapis; CREW.
Model warstwowy ISO-OSI
WPROWADZENIE DO MIKROPROCESORÓW. Klasyfikacja mikroprocesorów SIMD – ang. Single Instruction Multiple Data SISD – ang. Single Instruction Single Data.
Tryby adresowania i formaty rozkazów mikroprocesora
Wstęp do programowania Wykład 7
Zarządzanie projektami
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
TOPOLOGIE SIECI. Topologia sieci- określa sposób połączenia urządzeń sieciowych ze sobą. Najbardziej znane topologie:  Topologia magistrali  Topologia.
Schemat blokowy komputera
Zbiory rozłączne.
Zapis prezentacji:

1 1 1 2. TEORETYCZNE MODELE KOMPUTERÓW RÓWNOLEGŁYCH Modele komputerów dla obliczeń sekwencyjnych: 1) Maszyna Turinga (TM) (Turing Machine) głowica 1 1 1 taśma nieskończona 2) Maszyna o dostępie swobodnym (RAM) (Random-Access Machine) x1 x2 ....... xn taśma wejściowa r0 akumulator licznik rozkazów Program r1 rejestry r2 y1 y2 y3 y4 ....... taśma wyjściowa

Ogólny podział systemów komputerowych ze względu na liczbę strumieni instrukcji i liczbę strumieni danych (Flynn, 1972): 1) SISD (Single Instructions, Single Data) - wszystkie tradycyjne komputery jednoprocesorowe, pracujące indywidualnie (nie w sieci); 2) SIMD (Single Instructions, Multiple Data) - komputery macierzowe, wykonujące (synchronicz- nie) jednakowe operacje na całych wektorach danych; 3) MISD (Multiple Instructions, Single Data) - na razie nie wzbudziły zainteresowania; 4) MIMD (Multiple Instructions, Multiple Data) - wszystkie systemy rozproszone (sieci kompu- terowe), większość architektur komputerów równoległych. W całym dalszym ciągu tego wykładu obowiązującym modelem będzie MIMD. Uwaga. Model MIMD będzie również stosowany do pozornej równoległości (pod pewnymi warunkami).

Klasyfikacja modeli MIMD: a) ze względu na sposób wymiany informacji między procesorami: 1) z pamięcią dzieloną; 2) sieciowe (z przesyłaniem komunikatów). b) ze względu na taktowanie wykonywania instrukcji: 1) synchroniczne (wspólny zegar, jednakowe czasy wykonywania instrukcji); 2) asynchroniczne (wszystkie procesory mają niezależne zegary). Obie powyższe klasyfikacje są niezależne - zarówno modele z pamięcią dzieloną, jak i sieciowe mogą być synchroniczne lub asynchroniczne. Uwaga. W języku inżynierskim mówi się o systemach ściśle powiązanych (czas przesyłania impulsów jest pomijalnie mały) i systemach luźno powiązanych (nie jest pomijalnie mały). P1 P2 Pn Pi - procesor i jego pamięć lokalna Pamięć dzielona łącze komunikacyjne Pi Pj

(pomijamy tu sprawę odczytu z taśmy Model synchroniczny z pamięcią dzieloną nazywany jest PRAM (Parallel Random-Access Machine). Może być traktowany jako zespół RAM-ów dołączonych do bloku pamięci globalnej i mających dodatkowe instrukcje kopiowania danych z pamięci lokalnej do globalnej i na odwrót (pomijamy tu sprawę odczytu z taśmy wejściowej i zapisu na taśmę wyjściową). Ponieważ równoczesny dostęp (w sensie zapisu) wielu RAM-ów do jednej lokaty pamięci globalnej może powodować konflikt, ze względu na sposób podejścia do tego problemu modele PRAM dzielimy na: 1) EREW PRAM (Exclusive Read, Exclusive Write) - nie zezwala na żaden równoczesny dostęp, zarówno w sensie pisania, jak i czytania; 2) CREW PRAM (Concurrent Read, Exclusive Write) - zezwala na równoczesność wielu odczytów, ale nie zapisów; 3) CRCW PRAM (Concurrent Read, Concurrent Write) - zezwala na równoczesność zarówno odczytów, jak i zapisów. RAM RAM RAM zegar Pamięć wspólna

W przypadku równoczesnego zapisu można przyjąć różną politykę rozwiązywania konfliktów. Ze względu na nią modele CRCW PRAM dzielimy na: 1) common CRCW PRAM - równoczesny zapis dozwolony jest tylko wtedy, gdy ma być zapisana jedna i ta sama wartość; 2) arbitrary CRCW PRAM - w przypadku próby równoczesnego zapisu, RAM, który otrzymuje zezwolenie na zapis, wybierany jest losowo; 3) priority CRCW PRAM - wszystkie RAM-y mają przyporządkowane priorytety (parami różne), priorytety są liniowo uporządkowane, w przypadku próby równoczesnego zapisu zezwolenie na zapis otrzymuje RAM o najwyższym priorytecie. Uwaga. W praktyce trudno jest spotkać rzeczywiste konstrukcje komputerów równoległych dobrze odzwier- ciedlających model PRAM (głównie ze względu na rozbieżności w czasach wykonywania pojedyn- czych instrukcji elementarnych). Model ten ma znaczenie głównie w badaniach teoretycznych - przy szacowaniu złożoności skończonych (transformacyjnych) algorytmów równoległych.

Jeżeli jeden robotnik jest w stanie wykopać dół przez godzinę ... ... to ile czasu taki sam dół będzie kopało 6 robotników ? Odpowiedź: co najmniej 10 minut (być może więcej, jeżeli będą sobie wzajemnie przeszkadzali). (przykład zaczerpnięty z wykładu dr S. Sokołowskiego)

Przykład (parallel merge sort) Sortujemy tablicę: Zakładamy, że n=2m dla pewnego naturalnego m. Zakładamy, że mamy już skonstruowaną procedurę merge (i, j, k : word), która dla 1  i  j  k n dokonuje scalenia uporządkowanych fragmentów a[i] .. a[j] oraz a[j+1] .. a[k] w uporządkowany fragment a[i] .. a[k] w czasie O(k - i). a) procedura sekwencyjna b) procedura równoległa procedure smergesort (p, q : word); procedure pmergesort (p, q : word); var r : word; var r : word; begin begin if p < q then begin if p < q then begin r  (p + q) mod 2; r  (p + q) mod 2; smergesort (p, r) ; smergesort (r+1, q); pmergesort (p, r) || pmergesort (r+1, q); merge (p, r, q) merge (p, r, q) end end end; {smergesort} end; {pmergesort} a[1] a[2] a[3] a[n]

P(n) zachodzi C(n) = W(n) = Ts (n) . Złożoność czasowa procedury sekwencyjnej: Ts (n) = 2  Ts (n /2) + b  n + c Ts (n) = O(n log2n) potrzebny 1 procesor Złożoność czasowa procedury równoległej: Tp (n) = Tp (n /2) + b  n + c Tp (n) = O(n) potrzebne P(n) = O(n) procesorów Koszt procedury równoległej: C(n) = Tp(n)  P(n) tu C(n) = O(n2) Praca procedury równoległej: Uwaga. Dla procedury sekwencyjnej P(n) zachodzi C(n) = W(n) = Ts (n) . W(n) =  Ts,i(n)  C(n) tu W(n) = O(n log2n) i=1

Wniosek. Programowanie współbieżne zwykle zwiększa koszt, a często zwiększa i pracę. Zmniejszyć może jedynie zużycie czasu. Algorytm równoległy nazywamy optymalnym, jeżeli jego praca jest równa złożoności problemu (złożoność problemu jest kresem dolnym złożoności algorytmów sekwencyjnych rozwiązujących dany problem). Uwaga. Algorytmy optymalne mogą mieć różne złożoności czasowe równoległe. Dla wielu problemów ich złożoności sekwencyjne (a tym bardziej równoległe) nie są znane. Dla problemu sortowania tablicy jego złożoność sekwencyjna jest O(n log2n), natomiast złożoność równoległa może być ograniczona przez stałą (ale algorytmy o takiej złożoności mogą wymagać użycia np. n! procesorów !).

Modele sieciowe (z przesyłaniem komunikatów) również mogą być synchroniczne lub asynchroniczne. Przyjmuje się, że: 1) połączenia między procesorami są dwukierunkowe; 2) każdy procesor może być połączony z wieloma sąsiadami, których identyfikuje poprzez ich numery (adresy). W przypadku synchronicznym łącza nie mają żadnej pojemności, więc operacje „wyślij” i „odbierz” w dwóch sąsiednich procesorach muszą być równoczesne. W przypadku asynchronicznym łącze dysponuje swoim własnym buforem (skończonym lub nieskończonym), więc operacja odczytu z łącza może być opóźniona w stosunku do operacji zapisu. zegar RAM RAM

Sposób połączenia układu procesorów w sieć nazywamy topologią sieci (topologię należy rozumieć jako pewną klasę nieskierowanych grafów połączeń). Częściej spotykane topologie: a) b) szereg (array) pierścień (ring) c) d) krata (trellis) torus (torus)

e) hiperkostka n-wymiarowa (n-dimensional hypercube) Topologia jest szczególnie istotna w przypadku synchronicznym (superkomputery, zawierające wiele procesorów we wspólnej obudowie). Sieci asynchroniczne zwykle modelują systemy luźno powiązane. Topologia jest wówczas uwzględniana w przypadku analizy protokołów niższych warstw (z punktu widzenia protokołów wyższych warstw każdy komputer może być połączony z każdym innym w sieci). W całym dalszym ciągu tego wykładu będziemy rozważali jedynie modele asynchroniczne (zarówno z pamięcią dzieloną, jak i z przesyłaniem komunikatów).

3. RZECZYWISTE KONSTRUKCJE KOMPUTERÓW RÓWNOLEGŁYCH I PROBLEMY Z REALIZACJĄ MODELI TEORETYCZNYCH W przypadku realizacji modelu z przesyłaniem komunikatów może wystąpić co najwyżej problem z przepustowością sieci. W przypadku realizacji modelu z pamięcią dzieloną występuje większy kłopot, który jest związany z faktem, że pojedyncze bloki pamięci mają jedynie pojedyncze szyny adresowe i danych (zapisywanych i odczytywanych). To jest schemat uproszczony W dowolnej chwili czasu tylko jeden procesor ma możliwość fizycznego dostępu do bloku pamięci. Gdyby długość cyklu pamięci stanowiła pomijalnie mały ułamek cyklu rozkazowego, problem byłby mały, ale tak niestety nie jest. Dostęp do pamięci wspólnej stanowi „wąskie gardło” całego komputera równoległego. Jakie są sposoby obchodzenia tego problemu ? zapis / odczyt dane zapisywane blok pamięci dane odczytywane adres

1) Architektura szynowa z pamięciami podręcznymi. rysunek nie uwzględnia układu arbitrażu szyny szyna Procesor Pi, chcąc wykonać operację na lokacie pamięci wspólnej, przepisuje ją (przez szynę) do swojej pamięci podręcznej (jeśli już miał jej kopię, nie robi tego), a następnie wykonuje daną operację. Jeśli był to zapis, musi być jednocześnie zaktualizowana zawartość odpowiedniej lokaty pamięci wspólnej i unieważnione (lub też zaktualizowane - ale to dłużej trwa) wszystkie kopie tej lokaty w pamięciach podręcznych innych procesorów. Uwaga. Możliwe jest też rozwiązanie (maszyny NUMA - Non Uniform Memory Access), w którym pamięci wspólnej (fizycznie) nie ma, a cała przestrzeń adresowa jest rozdzielona pomiędzy pamięci podręczne procesorów. W tym przypadku każdy procesor ma dostęp do całej przestrzeni adresowej, ale dostęp do „cudzych” adresów jest dużo wolniejszy, niż do „własnych”. P1 P2 Pn pamięć wspólna pamięć podręczna pamięć podręczna pamięć podręczna

2) Architektura przełączana. Zamiast jednego dużego bloku pamięci wspólnej można zastosować kilka mniejszych (kosztem bardziej skomplikowanego dostępu do nich). Dwa najczęstsze rozwiązania: a) b) wybierak krzyżakowy (crossbar switch) sieć omega (omega network) Zaleta: szybki dostęp wielu procesorów jednocześnie do różnych Zaleta: dla n procesorów i n bloków pamięci potrzeba jedynie bloków pamięci. (n/2) log2 n przełączników. Wady: - wolny dostęp w przypadku odwoływania się wielu proce- Wady: - wolny dostęp w przypadku odwoływania się wielu sorów do tego samego bloku pamięci; procesorów do tego samego bloku pamięci; - dla n procesorów i n bloków pamięci potrzeba aż n2 prze- - czas przełączania jest funkcją n (log2 n warstw) - dla łączników. dużych n mogą wystąpić istotne opóźnienia. pam1 pam2 pam3 pam4 proc1 pam1 proc1 proc2 pam2 proc2 proc3 pam3 proc3 punkt przełączający proc4 pam4 proc4 przełącznik poczwórny