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)