Transcript Wykład 13

Architektura komputerów
Wykład nr 13: Architektury równoległe
Piotr Bilski
Architektury równoległe
• Wieloprocesory symetryczne
• Klastry
• Systemy o niejednorodnym dostępie do
pamięci
• Komputery wektorowe
Klasyfikacja systemów równoległych
DS
DS
IS
PU
CU
PU
SIMD
MU
LM
IS
DS
CU
PU
SISD
LM
DS
IS
DS
LM
IS
DS
PU
CU
IS
IS
MU
DS
PU
MIMD (pamięć wspólna)
PU
CU
IS
MU
DS
PU
CU
IS
CU
DS
MU
DS
PU
MU
Sieć połączeń
PU
CU
CU
PU
Taksonomia Flynna
Wieloprocesory symetryczne (SMP)
• Wiele procesorów o porównywalnych
możliwościach, pełniących identyczne funkcje
• Pamięć i urządzenia we/wy są wspólne dla
wszystkich procesorów
• Komunikacja między komponentami odbywa się
przez magistralę
• Systemem steruje system operacyjny
• Rozwiązanie wydajne w stosunku do
uniprocesora!
Architektura wieloprocesora
Przykład działania systemu czasu
rzeczywistego na maszynie
wieloprocesorowej
Podział systemów wieloprocesorowych
• Magistrala z podziałem czasu
– Konieczność adresowania modułów
– Mechanizm arbitrażu dla dostępu do magistrali
– Moduły bez dostępu do magistrali czekają
bezczynnie
• Pamięć wieloportowa – możliwy
jednoczesny dostęp do pamięci z wielu
modułów
• Centralna jednostka sterująca – wyróżniony
moduł taktujący i arbitrażowy
Magistrala z podziałem czasu
• Najprostsza architektura
• Struktura i interfejs podobne do systemu
jednoprocesorowego
• Przejawia następujące cechy:
– Adresowanie – rozróżnianie modułów na magistrali
– Arbitraż – każdy moduł może być w trybie „master”
– Podział czasu – jeśli jeden moduł kontroluje magistralę,
pozostałe muszą czekać w stanie zawieszenia
• Obecnie oprócz wielu modułów wejścia/wyjścia
stosowane są również wieloprocesory
Organizacja magistrali z podziałem
czasu
Pamięć wieloportowa
• Bezpośredni, niezależny dostęp do
pamięci przez każdy procesor
• Wymagane układy logiczne do
rozwiązywania konfliktów
• Niewielkie modyfikacje wymagane w
modułach lub procesorach
Organizacja pamięci wieloportowej
Centralna jednostka sterująca
• Tunele oddzielają strumienie danych pomiędzy
niezależnymi modułami
• Potrafi buforować żądania
• Odpowiada za arbitraż oraz taktowanie
• Odpowiada za kontrolę i przekazywanie
informacji o stanie
• Odpowiada za powiadamianie o aktualizacji
pamięci podręcznej
• Interfejsy do modułów pozostają niezmienione
• Przykład: IBM S/370
Problemy wieloprocesorowych
systemów operacyjnych
• Obsługa procesów współbieżnych
• Szeregowania zadań z uwzględnieniem
wielu procesorów
• Synchronizacja w przypadku
współdzielonych danych
• Zarządzanie pamięcią – wydajność i
spójność
• Niezawodność i tolerowanie uszkodzeń
Przykład SMP – IBM S/390
Spójność pamięci podręcznych
• Obecność danych jednocześnie w pamięci
głównej oraz pamięciach podręcznych
wymusza technikę aktualizacji
• Zapis opóźniony nie zapewnia spójności
• Rozwiązaniem dla systemów
wieloprocesorowych jest protokół MESI
Mechanizmy spójności
• Programowe
– Pracę wykonuje kompilator i system
operacyjny
– Analiza kodu pozwala stwierdzić, które
zmienne mogą tworzyć problem spójności
przy wprowadzaniu ich do pamięci podręcznej
– Takie zmienne nie są wprowadzane do
pamięci
– Obliczany jest okres bezpieczeństwa dla
wspólnych zmiennych
Mechanizmy spójności (c.d.)
• Sprzętowe
– Protokoły katalogowe – zbieranie informacji o
miejscu przechowywania dublowanych
danych (centralny sterownik przechowuje je w
pamięci głównej)
– Protokoły podglądania – każdy procesor
uczestniczy w utrzymywaniu spójności
pamięci
• Zapis z unieważnieniem
• Zapis z aktualizacją
Protokoły katalogowe
• Katalog (lista wierszy pamięci podręcznej
zawierających dane z pamięci głównej)
przechowywany w pamięci głównej
• Żądania są konfrontowane z zawartością
pamięci
• Przeprowadzane są odpowiednie transfery
• Główny problem wydajnościowy (bottleneck)!
• Efektywne w dużych systemach z dużą liczbą
połączeń
Protokoły podglądania
• Rozpraszają problem spójności pamięci
podręcznych pomiędzy kontrolery pamięci
• Pamięci rozpoznają, które wiersze są dzielone
• Aktualizacja pamięci rozprowadzana pomiędzy
inne moduły
• Przeznaczone do wieloprocesorów opartych na
magistrali
• Zwiększają obciążenie magistrali
Zapis z unieważnieniem
• Wiele odczytów, jeden zapis
• Kiedy zapis jest wymagany, wszystkie kopie tej
linii w innych pamięciach są unieważniane
• Procesor zapisujący ma wyłączny dostęp do
wiersza, dopóki nie zostanie on zażądany przez
inny procesor
• Używane zarówno w Pentium II, jak i PowerPC
• Stan każdej linii jest oznaczony jako:
zmodyfikowany, wyłączny, dzielony lub nieważny
• Przykład: MESI
Zapis z aktualizacją
• Wiele odczytów i zapisów
• Zaktualizowane słowo jest rozprowadzane
do innych procesorów
• Niektóre systemy wykorzystują
adaptacyjnego połączenia obu rozwiązań
(unieważnienia i aktualizacji zapisu)
Protokół MESI
• Każdy wiersz w pamięci podręcznej ma
2-bitowy znacznik stanu
• Stany te to:
– Zmodyfikowany (jest tylko w tej pamięci
podręcznej, kopia w pamięci głównej różna)
– Wyłączny (jest tylko w tej pamięci podręcznej,
kopia w pamięci głównej identyczna)
– Wspólny (jest w wielu pamięciach podręcznych,
kopia w pamięci głównej identyczna)
– Nieważny (kopia w pamięci podręcznej
nieaktualna)
Scenariusze dostępu do danych
• Chybienie odczytu – przejście do stanu
„wspólny”, jeśli kopia danych jest w innej
pamięci, lub „wyłączny” w przeciwnym wypadku
• Trafienie odczytu – brak zmiany stanu
• Chybienie zapisu – zmiana stanu na
„zmodyfikowany”
• Trafienie zapisu – zmiana stanu na „wyłączny”,
potem na „zmodyfikowany”
Klastry
• Jest to grupa połączonych ze sobą
komputerów, traktowany jako jeden
system obliczeniowy
• Cecha skalowalności bezwzględnej i
przyrostowej
• Korzystny stosunek ceny do wydajności
Konfiguracja klastra
Szczegóły implementacji systemów
operacyjnych
• Zarządzanie uszkodzeniami
– Wysoka dostępność
– Odporność na uszkodzenia
– Przejmowanie danych
• Przełączanie aplikacji i danych z uszkodzonego systemu do
innego w ramach klastra
– Przywracanie danych
• Przywrócenie aplikacji i danych na oryginalny system, kiedy
problem zostanie rozwiązany
• Równoważenie obciążenia
– Skalowalność przyrostowa
– Automatyczne uwzględnianie nowych komputerów w
planowaniu
– Warstwa pośrednia musi rozpoznawać, które procesy
można przenosić między komputerami
Metody tworzenia klastrów
•
•
•
•
•
Rezerwa bierna
Dodatkowy serwer czynny
Odrębne serwery
Serwery połączone z dyskami
Serwery współużytkujące dyski
Architektura systemu klastrowego
•
•
•
•
•
•
•
•
•
•
•
Pojedynczy punkt wejściowy
Pojedyncza hierarchia plików
Pojedynczy punkt sterowania
Pojedyncza sieć wirtualna
Pojedyncza przestrzeń pamięci
Pojedynczy system zarządzania zadaniami
Pojedynczy interfejs użytkownika
Pojedyncza przestrzeń we/wy
Pojedyncza przestrzeń procesów
Migracja procesu
Wprowadzanie punktów kontrolnych
Sekwencyjne
programy użytkowe
Równoległe
programy użytkowe
Pośrednie oprogramowanie klastra
Komputer PC
Komputer PC
Komputer PC
Wspólne
oprogramowanie
Wspólne
oprogramowanie
Wspólne
oprogramowanie
Interfejs sieciowy
Interfejs sieciowy
Interfejs sieciowy
Szybka sieć transmisyjna
Niejednorodny dostęp do pamięci
• Wszystkie procesory mają dostęp do
całej pamięci, ale czas dostępu zależy
od sektora, do którego procesor chce
się dostać (NUMA)
• Systemy ze spójnością pamięci
podręcznych (CC-NUMA)
• Sieć składa się z węzłów
(wieloprocesorów) połączonych łączem
komunikacyjnym
Obliczenia wektorowe
• Superkomputery w obliczeniach wykorzystują
procesory tablicowe
• Obliczenia na tablicach wymagają przetwarzania
równoległego (mechanizm fork)
• Możliwe rozwiązania:
– ALU z przetwarzaniem potokowym
– Równoległe ALU
– Równoległe procesory
Przykład obliczenia wektorowego
Rozwiązania obliczeń wektorowych
Przetwarzanie potokowe
wewnątrz operacji
Łączenie w łańcuchy
• Technika stosowana w komputerach Cray
• Operacja na wektorze zaczyna się w
momencie uzyskania dostępu do jego
pierwszego elementu
• Wynik operacji może być natychmiast
wykorzystany w następnej
• Przy użyciu rejestrów wektorowych nie
trzeba wykonywać zapisu do pamięci
Przykład komputera wektorowego
– IBM 3090
• Rozwinięcie jednostki IBM 370
• Wszystkie operacje wektorowe
wykorzystują instrukcje IBM 370
• Obecne dwie jednostki – do obliczeń
skalarnych i wektorowych
• Zawiera 16 32-bitowych rejestrów
wektorowych, które mogą być łączone w
rejestry 64-bitowe
Prawo Amdahla
S ( n) 
tone (op )
t mult (op )
• S(n) – przyspieszenie wykonania operacji po
użyciu n procesorów
• tone(op) – czas wykonania zadania w systemie
jednoprocesorowym
• tmult(op) – czas wykonania zadania w systemie
wieloprocesorowym