21 Model z pamięcią współdzieloną (model PRAM)

Transkrypt

21 Model z pamięcią współdzieloną (model PRAM)
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 (pamięci współdzielonej – shared
memory SM). W modelu tym komunikacja między procesami i ich synchronizacja odbywa
się z użyciem wspólnych zmiennych. W rezultacie komputery równoległe o wspólnej
przestrzeni adresowej są stosunkowo łatwe do programowania, gdyż minimalizują one
problemy związane z przydziałem danych do poszczególnych procesorów i dynamicznym
równoważeniem ich obciążenia (konkluzja: łatwiejszy do oprogramowania niż modele
z pamięcią rozproszona - distributed memory DM) .
Rys. 1.9. Model PRAM
Powyższy model pociąga jednak za sobą możliwość wystąpienie konfliktów
w przypadku, gdy kilka procesorów jednocześnie odwołuje się do tej samej komórki pamięci.
Podczas gdy możliwość jednoczesnego wykonania operacji odczytu wydaje się koncepcyjnie
spójną (nawet, jeśli jej fizyczna realizacja jest nieoczywista), to nie można tego powiedzieć
o operacji zapisu. Dlatego też ocena stopnia równoległości realizacji zapisu do pamięci i/lub
odczytu z pamięci pozwala wyróżnić w ramach modelu PRAM kilka klas systemów
różniących się sposobem organizacji i zarządzania pamięcią.
Są to:
•
•
•
•
model EREW (ang. exclusive-read, exclusive write), w którym tylko jeden procesor
posiada prawo do odczytu lub zapisywania informacji do określonej komórki pamięci;
model CREW (ang. concurrent read, exclusive write), w którym możliwe jest
jednoczesne wykonywanie operacji odczytu z pamięci przez wiele procesorów przy
ograniczeniu możliwości jednoczesnego zapisu do pojedynczego procesora;
model ERCW, w którym więcej niż jeden procesor posiada prawo do jednoczesnego
wykonywanie operacji zapisu przy ograniczeniu możliwości jednoczesnego odczytu
do pojedynczego procesora;
model CRCW, w którym zarówno dla operacji zapisu, jak i odczytu możliwe jest ich
jednoczesne wykonywanie przez więcej niż jeden procesor.
Do badania algorytmów równoległych i organizacji obliczeń w komputerach
równoległych najczęściej stosowane są modele EREW i CRCW, podczas gdy dla celów
realizacji technicznej najszerzej wykorzystuje się model EREW PRAM, co wynika
z możliwości jego realizacji w postaci modelu RAM.
W przypadku maszyn, które umożliwiają równoległą (jednoczesną) realizację operacji
zapisu, kilka procesorów może jednocześnie ubiegać się o prawo zapisu pewnego zbioru
danych do pamięci. Możliwe sposoby realizacji powyższej równoległości to:
•
•
•
deterministyczny, gdy preferencję przy zapisie danych oddaje się procesorowi
z najwyższym priorytetem;
grupowy (inaczej kolektywny), gdy dane niektórych procesorów grupuje się
(wykorzystując np. prawo łączności operacji dodawania, mnożenia, znajdowania
minimum itd.), co pozwala na redukcję liczby odwołań do pamięci dzięki
przechowywaniu rezultatów pośrednich w procesorach, podczas gdy tylko rezultaty
operacji grupowych przesyłane są do pamięci
niedeterministyczny (losowy), gdy dowolnie wybrany procesor ma możliwość
dokonania natychmiastowego zapisu do pamięci, a wszystkie pozostałe próby kończą
się niepowodzeniem.
22. Atrybuty i architektury topologiczne maszyn DM-MIMD.
Distribute Memory – Multiple Instructions Multiple Data
Ogólna charakterystyka DM-MIMD :
• pamięć rozproszona
• duża liczba procesorów działających niezależnie,
• każdy procesor dysponuje pamięcią lokalną przechowującą bezpośrednio dostępne
obiekty danych, nie dostępną dla innych procesorów,
• wymiana informacji między procesorami za pomocą komunikatów,
• MPP (Massive Parallel Processing) – łączenie bardzo dużej (tysiące) liczby
procesorów,
• przykłady: Thinking Machines CM-5, Cray T3E, Fujitsu VPP5000, Meiko CS-2,
Intel Paragon.
Pamięć
Pamięć
Pamięć
Procesor
Procesor
Procesor
Sieć połączeń
Ale tak naprawdę to pytanie jest o czym innym (tylko wydaje mi się że warto wiedzieć o
czym się mówi..) . w tym pytaniu chodzi raczej o to co dał na swoich slajdach :
Parametry (chyba to samo co atrybuty ale mogę się mylić) maszyn DM:
• topologia połączeń między procesorami,
• średnica d – największa odległość między procesorami tj. liczba kanałów do
pokonania,
• Rozpiętość przekroju połówkowego RPP (bisection bandwidth) – maksymalna
liczba komunikatów, jakie mogą być wysłane jednocześnie przez jedną połowę
procesorów do drugiej, inaczej minimalna liczba kanałów, po usunięciu których sieć
będzie podzielona na dwie równe części.
Różne topologie maszyn DM (p = n⋅n):
• siatka 2D, d=2n-2, RPP=n,
• torus 2D, d=n, RPP=2n,
• pierścień (torus 1D), d=p-1(1-kier.), RPP=2,
• drzewo, np. binarne, d=2log2[(p+1)/2], RPP=1,
• hipersześcian (n-wym., p=2n), d=n, RPP=p/2=2n-1.
A tu jeszcze graficzne przedstawienie różnych topologii:
Siatk2D
Drzewo binarne
Pierścień (torus 1D)
m-FatTree:
•
•
d=log mn, RPP=p/2 gdzie:
o m – ilość potomków,
o n – ilość warstw,
o ilość węzłów p=mn,
o ilość przełączników s=n⋅mn-1,
niewielka średnica, dobra skalowalność, niewielka ilość przełączników
Prawdę mówiąc nie wiem czy to jest kolejna topologia DM ale była w tym miejscu w
wykładzie jeszcze postaram się coś o tym znaleźć :
Hipersześcian 3D:
Hipersześcian 4D:
Fizyczna architektura hipersześcianu pozwala tworzyć różne topologie logiczne:
Drzewo
Pierścień
Siatka 2D
23. Sieci komputerów i systemy hybrydowe.
Sieci komputerów:
Zaliczane są do kategorii DM-MIMD.
• COW (Cluster of Workstations)
– klastery Linux: Beowulf (http://www.beowulf.org).
• NOW (Network of Workstations)
– połączone ogólnodostępną siecią lokalną.
Zbudowane z komponentów off-the-shelf czyli:
– niższa o rząd wielkości cena.
– Problemy: niezawodność, bezpieczeństwo, heterogeniczność sprzętu i
oprogramowania.
Systemy hybrydowe :
•
•
•
•
•
Zespoły wieloprocesorowych węzłów SM-MIMD połączone wewnętrzną szybką
siecią
Dominujące podejście w nowszych systemach superkomputerowych.
Traktowanie jako maszyn DM nieefektywne – komunikaty lokalne w węzłach SM.
Trudność programowego odwzorowania hierarchicznej budowy
Przykłady: IBM RS/6000 SP, SGI Origin, Cray SV1, HP AlphaServer SC, HP
Exemplar.
Proc.
Proc
.
Proc.
Pamięć
Pamięć
Proc.
Proc
.
Proc
.
Proc.
Proc
.
Sieć połączeń
Urządzenia
peryferyjne
Distributed Shared Memory
• Maszyny hybrydowe z mechanizmem przedstawiającym pamięć rozproszoną
fizycznie jako współdzieloną adresowo.
• Asymetryczny dostęp – szybszy do pamięci lokalnej:
– NUMA (non-uniform memory access),
– Sprzętowe przyspieszanie za pomocą pamięci cache wymaga zachowania
spójności danych w całym systemie:
– ccNUMA (cache coherent)
• Przykład: SGI Origin, HP Exemplar
24. Elementy programowania specyficzne dla maszyn SM.
Synchronizacja operacji dostępu do pamięci przez wiele procesów
• Mechanizm synchronizacji obliczeń typu bariery
• Osiąganie maksymalnej wydajności zależy od:
– Możliwie rzadkiego używania bariery,
– Minimalizacji czasu trwania operacji synchronizacji,
– Minimalizacji czasu trwania operacji komunikacji.
Wątek (thread) – instancja procedury (metody), posiadająca prywatne dane lokalne oraz
mająca dostęp do danych globalnych zgodnie z regułami zasięgu dla danego języka np. przez
dziedziczenie przestrzeni adresowej procesu.
• Tworzenie wątków
• Niszczenie wątków
• Identyfikowanie się wątków
• Ustalanie punktów synchronizacji wątków współbieżnych
Zamek (mutex lock) – służy do ochrony fragmentów kodu (tzw. sekcji krytycznych) przed
wejściem do nich więcej niż jednego wątku;
• lock_init – inicjalizacja zamka,
• lock_on – zamknięcie zamka,
• lock_off – otwarcie zamka.
Zamek typu jeden pisarz – wielu czytelników (readers/writer lock) – służy do zamknięcia
sekcji krytycznej jedynie wtedy, gdy jeden z wątków zmienia dane globalne;
– w pozostałych okresach możliwe jest jednoczesne czytanie danych przez wiele
wątków.
Semafor – mechanizm niższego poziomu wykorzystujący in- i dekrementację pewnej
zmiennej systemowej s (całkowitej, nieujemnej.
• wait(s): if s>0 then s:=s-1 else wstrzymaj wątek endif
•
signal(s): if {wątek W wstrzymany na s}
then przywróć wątek W else s:=s+1 endif
• Dla wartości początkowej s=1 otrzymujemy semafor binarny (zamek).
Monitor – obiekt łączący dane globalne, zmieniane tylko w sekcji krytycznej, oraz operacje
na nich z mechanizmem synchronizacji
Bariera – zapewnia dojście wszystkich wątków do punktu jej ustawienia, zanim
którykolwiek będzie mógł pójść dalej:
– barrier_init(strength) – inicjalizacja, liczba wątków;
– barrier – ustawienie bariery, punkt synchronizacji.
25. Elementy programowania specyficzne dla maszyn DM.
Część wymagań analogiczna do SM czyli:
• Tworzenie procesów
• Niszczenie procesów
• Identyfikowanie się procesów (SPMD)
• Komunikacja między procesami
– wysyłanie komunikatów do jednego / wielu
– odbiór komunikatów od jednego / wielu
Komunikacja synchroniczna – proces wysyłający jest wstrzymywany dopóki nie będzie
gotowy odbierający i na odwrót.
Komunikacja asynchroniczna – procesy nie są wstrzymywane; buforowanie
komunikatów.
Wysyłanie/obieranie blokujące – następna instrukcja w procesie będzie wykonana
dopiero po zakończeniu operacji komunikacji.
Wysyłanie/odbieranie nieblokujące – przejście do następnej instrukcji zaraz po
zainicjowaniu operacji komunikacji.
Bariera – podobnie jak w systemach SM
Brak sekcji krytycznych – zamki zbędne
Pożądana jest symulacja środowiska pamięci wspólnej na maszynie DM:
– data parallelism – High Performance Fortran,
– przestrzeń krotek (rekordów z globalnej bazy danych) – Linda.
Zdalne wywoływanie procedur (RPC)

Podobne dokumenty