Systemy wieloprocesorowe i wielokomputerowe

advertisement
Systemy wieloprocesorowe i
wielokomputerowe
Taksonomia Flynna
Uwzględnia następujące czynniki:
• Liczbę strumieni instrukcji
• Liczbę strumieni danych
Klasyfikacja bierze się pod uwagę:
• Jednostkę przetwarzającą JP
• Moduł pamięci MP
Taksonomia Flynna
Skrót
Nazwa
Liczba
strumieni
instrukcji
Liczba
strumieni
danych
SISD
Single Instruction Single Data
1
1
SIMD
Single Instruction Multiplie Data
1
wiele
MISD
Multiplie Instruction Single Data
wiele
1
MIMD
Multiplie Instruction Multiplie Data
wiele
wiele
SISD - Single Instruction, Single Data
Przykład:
urządzenia jednoprocesorowe
Elementy równoległości:
przetwarzanie potokowe i super skalarne;
Single Instruction Multiplie Data
Przykład:
komputery wektorowe i macierzowe.
takie same instrukcje na oddzielnych danych.
Procesory macierzowe
Procesor macierzowy składa się z siatki
(dwu lub trzy wymiarowej) jednakowych
procesorów posiadających pamięci lokalne
wykonujących jeden program.
Procesory macierzowe
Procesory macierzowe
Przykład:
Za pierwszy komputer macierzowy zbudowany według
architektury SIMD źródła podają komputer ILLIAC IV.
Projekt z lat 60 w University of Illinois a maszyna weszła do
eksploatacji w roku 1972.
• Maszyna składała się z jednostki sterującej rozgłaszającej
rozkazy do 64 jednostek przetwarzających (w rzeczywistości
zbudowano tylko 16 jednostek).
• Każda z tych jednostek operowała na pamięci lokalnej
zawierającej 2K słów 64 bitowych i mogła komunikować się
bezpośrednio z czterema innymi procesorami.
• Wydajność maszyny sięgnęła 15 Mflop i była daleko poniżej
zakładanej wydajności 1000 Mflop.
Procesory wektorowe
• Procesor wektorowy operuje na wektorach czyli wielu wielkościach
skalarnych naraz.
• Komputer wektorowy składa się z części zawierającej procesor
konwencjonalny i uzupełniony jest o procesor wektorowy będący
jednostką wykonującą operacje na długich rejestrach danych.
• Procesory wektorowe są elementami wielu superkomputerów (DCD
Cyber 205, Cray 1, Cray 2, Cray 3, Fujitsu VPX 2000, Hitachi S3600).
W procesorach Pentium zastosowano po raz pierwszy mechanizmy
MMX (ang. MultiMedia eXtension) i SSE (ang. Streaming SIMD
Extensions).
Mechanizm MMX - wykonywanie operacji stałoprzecinkowych na
wektorach 64 bitowych.
Mechanizm SSE - wykonywaniu operacji zmiennoprzecinkowych na
wektorach zawierających 4 liczby zmiennoprzecinkowe (każda zajmuje
32 bity).
Single Instruction Multiplie Data
Współcześnie wg koncepcji SIMD budowane
są akceleratory graficzne wykorzystywane w
komputerach PC.
Nvidia - GeForce GTX TITAN liczba rdzeni
CUDA 2688:
5 – GPCs – Graphics Processor Clasters;
14 – SMx – Streaming Multi-processors;
192 - stream processors;
Nvidia GeForce KEPLER
Single Instruction Multiplie Data
Własności komputerów SIMD:
• Większość systemów składa się z wielu (często
prostych) procesorów.
• Wszystkie procesory wykonują tę samą instrukcję ale
dla różnych zestawów danych.
• Każdy z procesorów posiada pamięć lokalną ale istnieje
też pamięć wspólna.
• Często istnieje połączenie pomiędzy sąsiednimi (lub
innymi) procesorami.
• Implementują równoległość drobnoziarnistą (ang. finegrained parallelism.)
MISD - Multiple Instruction Single Data
MISD - Multiple Instruction Single Data
Przykład:
• komputery wysokiej dyspozycyjności;
• w pojedynczym strumieniu wyznaczane są beamformery
w różnych pasmach;
• zaszyfrowane dane są dekodowane wg różnych
algorytmów.
MIMD - Multiple Instruction Multiple Data
MIMD - Multiple Instruction Multiple Data
Do grupy systemów MIMD zalicza się całe
spektrum komputerów poczynając do stacji roboczych
(procesory wielordzeniowe) po superkomputery.
Systemy MIMD mają bardzo zróżnicowaną
architekturę, a przez to wymagają odrębnych metod
programowania. Z uwagi na te właściwości powstały
metody dalszego ich klasyfikowania.
TITAN Supercomputer
http://www.anandtech.com/show/6421/inside-the-titan-supercomputer-299k-amd-x86-cores-and-186k-nvidia-gpu-cores
TITAN Supercomputer
http://www.top500.org/lists/2012/11/
http://www.anandtech.com/show/6421/inside-the-titan-supercomputer-299k-amd-x86-cores-and-186k-nvidia-gpu-cores
Taksonomia Tanneubauma
Kryterium – sposób komunikacji pomiędzy
procesorami.
Komunikacja może być realizowany
poprzez:
• wspólną pamięć;
• system wejścia wyjścia.
Taksonomia Tanneubauma
Konstrukcja, w której procesory komunikują
się poprzez pamięć dzieloną nazywa się
wieloprocesorem (ang. Multiprocessor).
Gdy procesory komunikują się poprzez
urządzenia wejścia wyjścia mamy do czynienia z
wielokomputerem (ang. Multicomputer).
Taksonomia Tanneubauma
Multiprocesory
Przestrzeń adresowa współdzielona pomiędzy
wszystkie procesory
Multiprocesory
Własności multiprocesora:
• Dostęp do pamięci jest wąskim gardłem
ograniczającym wydajność systemu.
• Komunikacja procesów odbywa się przez
wspólną pamięć – nie trzeba specjalnych
mechanizmów komunikacyjnych.
• Konieczność synchronizacji dostępu do
zmiennych dzielonych.
Multikomputery – ang. multicomputers
Multikomputery
Własności:
• Każdy z procesorów ma swoją lokalną
pamięć.
• Komunikacja procesów odbywa się przez
system
wejścia/wyjścia
przy
wykorzystaniu abstrakcji komunikatów.
Taksonomia Johnsona
Modyfikacja klasyfikacji Flynna – kategoria systemów MIMD
podzielona została na cztery podkategorie w zależności od
zastosowanej w nich struktury pamięci.
Typ pamięci:
GM – pamięć globalna, ang. Global Memory.
DM – pamięć rozproszona, ang. Distributed Memory.
Sposób dostępu do pamięci:
SV – współdzielone zmienne, ang. Shared Veriables.
MP – przekazywanie komunikatów, ang. Message Passing.
Taksonomia Johnsona
Pamięć globalna GM Pamięć rozproszona DM
Komunikacja poprzez
zmienne
dzielone SV Shared
Veriables
GMSV
DMSV
Komunikacja poprzez
przekazywanie
komunikatów MP Message
Passing
GMMP
DMMP
Taksonomia Johnsona
Komputery należące do grupy GMSV są ściśle powiązanymi ze
sobą wieloprocesorami , których liczba w większości rozwiązań
nie przekracza 20. Dostęp do pamięci realizowany jest przy
użyciu współdzielonej magistrali.
DMMP – wysoko skalowalne wielokomputery:
• wyposażone w pamięć rozproszoną;
• wykorzystujące różnorodne mechanizmy dostępu do pamięci;
• posiadające kilka przestrzeni adresowych;
• wykorzystujące mechanizm przesyłania komunikatów.
Ze względu na różnorodność rozwiązań zgodnych z architekturą
DMMP wydziela się wśród nich mniejsze klasy.
Taksonomia Johnsona
DMSV – skalowalne wieloprocesory wykorzystujące:
• współdzielenie zmiennych zamiast przesyłania
komunikatów;
• zastosowanie globalnej przestrzeni adresowej.
Ilość procesorów nie przekracza 256, a wykorzystywane
topologie ich połączeń to hipersześcian i kratownica.
GMMP – wykorzystują:
• pamięć globalną oraz
• mechanizm przesyłania komunikatów.
Brak praktycznej implementacje tej kategorii.
Klasyfikacja równoległości:
• Procesory superskalarne i procesory
wektorowe;
• Procesory wielordzeniowe;
• Systemy SMP / Systemy NUMA;
• Klastry;
• Systemy masywnie równoległe;
• Gridy.
Systemy z pamięcią dzieloną
Zwiększanie
mocy
obliczeniowej
poprzez
zrównoleglanie na poziomie instrukcji ma swoje granice
wynikające z ograniczeń technologicznych.
Dalsze przyspieszenie może być osiągnięte poprzez
wskazanie części kodu, która może być wykonywana
równolegle. Nazwane jest to zrównolegleniem na
poziomie wątków, ang. Thread Level Parallelism.
Multiprocesory z siecią w pełni połączoną
Wieloprocesor z przełącznicą krzyżową
Multiprocesory
Rozwiązaniem wąskiego gardła przy dostępie do wspólnej
pamięci było zastosowanie tak zwanej przełącznicy krzyżowej
(ang. Crossbar Switch), która jest przykładem sieci w pełni
połączonych (ang. Fully Connected Networks).
Zalety - jednoczesny dostęp wielu procesorów do wielu
modułów pamięci (pod warunkiem że dany moduł nie jest
zajęty), sieci nieblokujące.
Wady - znaczna liczba magistral i przełączników co przy
większej liczbie modułów pociąga za sobą znaczne koszty. Przy
n procesorach i k modułach pamięci liczba przełączników
proporcjonalna do k×n .
Komputer Sun Fire E25K wykorzystuje przełącznicę krzyżową
wymiaru 18x18
Wieloprocesory z siecią wielostopniową
Sieci wielostopniowe (ang. Multistage Networks) stanowią kompromis pomiędzy
kosztami a wydajnością. Wykazują większą wydajność niż konstrukcje ze wspólną
magistralą i mniejszy koszt niż rozwiązania z przełącznicą krzyżową.
Wieloprocesory z siecią wielostopniową
Przykład sieci wielostopniowej – sieć omega
Sieć omega zawierająca n procesorów i n modułów pamięci
składała się będzie z log 2 n stopni a w każdym stopniu będzie
n przełączników.
2
n
W całej sieci będzie  log 2 n przełączników. W przełącznicy
2
2
krzyżowej – n .
Przełącznica krzyżowa dla 8 procesorów i 8 pamięci zawierała
będzie 64 przełączniki podczas gdy sieć omega tylko 12.
Wieloprocesory z pamięcią wieloportową
Przeniesienie układów logicznych, odpowiedzialnych za obsługę transmisji i
zgłoszeń dostępu, z punktów krzyżowych (w przełącznicy krzyżowej) do wnętrza
modułów pamięci, prowadzi do organizacji zwanej pamięcią wieloportową, ang.
multiport memory.
Właściwości systemów opartych na pamięciach wieloportowych:
- skomplikowany druk,
- kosztowna pamięć,
- ograniczenie konfiguracji i maksymalnej przepustowości systemu przez liczbę
portów do modułu pamięci
Klastry
Wyróżnia się trzy podstawowe rodzaje klastrów:
• klastry wysokiej dostępności (ang. high availability
clusters – HA),
• klastry zrównoważonego obciążenia (ang. load
balancing clusters – LB),
• klastry wysokiej wydajności (ang. high performance
clusters – HPC).
Klaster wysokiej dostępności
Klastry HA = gwarancja dostępności usług
oferowanych poprzez klaster.
Najprostszy klaster tego typu składa się z dwóch węzłów, węzła aktywnego, aktualnie
oferującego daną usługę oraz węzła oczekującego i monitorującego pracę węzła
aktywnego. W przypadku awarii węzła aktywnego, węzeł będący w spoczynku
przechodzi w stan aktywności - przejmuje adres IP odchodzącego węzła, uzyskuje
dostęp do współdzielonych zasobów a następnie uruchamia odpowiednie usługi umożliwiając dalszą pracę. Współdzielenie danych pomiędzy węzłami może odbywać się
za sprawą replikacji programowej (np. DRBD) bądź też dzięki rozwiązaniu sprzętowemu.
Przykładem dosyć popularnego oprogramowania typu OpenSource oferującego
funkcjonalność wysokiej dostępności jest projekt Linux-HA
Klaster zrównoważonego obciążenia
Klastry LB = gwarancja zrównoważonego obciążenia na
wszystkie węzły klastra.
Przekierowanie żądania do innego węzła odbywa się na podstawie analizy
obciążenia (wykorzystania procesora, pamięci) węzłów. Nie dopuszcza się do sytuacji,
w której niektóre z węzłów są w stanie pełnej zajętości, a inne wolne od
wykonywania jakichkolwiek zadań. Zadaniem mechanizmu LB jest pełne
wykorzystanie mocy klastra. Umożliwia on również wykrywanie awarii węzłów bądź
też wykrycie całkowitego wyłączenia węzła.
Przykładem projektów realizujących założenia klastra zrównoważonego obciążenia
jest LVS (Linux Virtual Server) oraz openMosix .
Klaster wysokiej wydajności
Poprzez klaster wysokiej wydajności (ang. high performance computing - HPC)
rozumie się grupę komputerów wykorzystywaną do wykonywania obliczeń. Klastry
tego typu ze względu na oferowaną dużą moc obliczeniową są szczególnie
popularne w środowiskach naukowych. Używa się ich do uruchamiania programów
wykonujących obliczenia.
Klaster wysokiej wydajności
Poniżej kilka przykładowych zastosowań systemów HPC:
• analiza danych pochodzących z sejsmogramów w poszukiwaniu złóż ropy
naftowej czy też gazu ziemnego (do rekonstrukcji niewielkich obszarów potrzebne
są terabajty danych),
• symulacje aerodynamiczne przy projektowaniu silników oraz samolotów,
• projektowanie systemów do przewidywania trzęsień ziemi,
• w naukach biomedycznych np. symulacja procesu fałdowania białek, który w
przyrodzie zachodzi bardzo szybko tj. około jednej milionowej części sekundy
(zaburzenie tego procesu może prowadzić do choroby Alzheimera) - symulacja
tego procesu na zwykłym komputerze zajęłaby dekady,
• modelowanie farmaceutyczne,
• modelowanie wyników finansowych,
• symulacje astrofizyczne,
• symulacje klimatu Ziemi (modelowanie aktualnie zachodzących zjawisk
klimatycznych oraz ich przewidywanie),
• zastosowanie w kinematografii przy tworzeniu efektów specjalnych w filmach;
renderowanie graficzne przy manipulowaniu obrazem wysokiej rozdzielczości.
Klasyfikacja klastrów
Kryterium sprzęt i sieć
Klastry heterogeniczne:
• uruchamiane w środowiskach heterogenicznych, czyli niejednorodnych;
• zbudowane z komputerów pochodzących od różnych producentów;
• komputery pracują na różnych systemach operacyjnych;
• elementy klastra wykorzystują różne protokoły sieciowe.
Klastry homogeniczne:
• uruchamiane w środowiskach homogenicznych, czyli jednorodnych;
• zbudowane w oparciu o sprzęt tego samego, lub kompatybilnego producenta.
• komputery pracują pod kontrolą tego samego systemu operacyjnego.
Klastry
Download