Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
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
2
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).
3
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
4
(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
5
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.
6
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)
7
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]
8
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
9
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 !).
10
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
11
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)
12
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).
13
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
14
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
15
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.