Komputery macierzowe

advertisement
Komputery macierzowe
Komputery macierzowe
• Co to jest komputer macierzowy
• Organizacje wieloprocesorowe
– SMP
– CC-NUMA
•
•
•
•
Utrzymanie spójności pamięci podręcznych
Topologie sieci połączeń
Przykłady: ILLIAC IV, Cray-1, DAP
Przyszłość
Co to jest komputer macierzowy
• Komputer macierzowy to synchroniczna
wieloprocesorowa maszyna ze współdzieloną
pamięcią.
• Komputery macierzowe tradycyjnie należą do
klasy SIMD. Pierwsze takie maszyny zaczęły
pojawiać się w latach 60-tych XX wieku.
• Żaden SISD z rozszerzeniami SIMD nie jest w
stanie zastąpić superkomputera.
• Komputer macierzowy nadzoruje jednostka
sterująca. W komunikacji z człowiekiem
pośredniczy host (komputer „front-end”).
Komputery macierzowe.
Mylące nazewnictwo
• Bardzo często termin array processor jest
synonimem komputera macierzowego.
• Określenie array processor oraz vector processor
używane są zamiennie.
• Bardzo często procesorem macierzowym
(tablicowym) nazywane jest urządzenie
peryferyjne wykonujące tylko wektorowe
elementy programów.
• Obecnie komputery macierzowe rozumiane jako
maszyny czysto SIMD są rzadkością.
Organizacje wieloprocesorowe
• W odróżnieniu od PC, superkomputer działa
równolegle w sensie sprzętowym.
• Każdy procesor komp. mac. to jednostka
przetwarzająca PU (PE).
• Wszystkie PU pracują na blokach jednej
pamięci operacyjnej. Ważne jest
prawidłowe aktualizowanie pamięci, tak
aby każdy PU miał jej właściwy obraz.
Komputery o pamięci
rozproszonej
• Najnowsze superkomputery są budowane w
formy klastrów o rozproszonej pamięci.
Klaster składa się z wielu pojedynczych
(super)komputerów połączonych szybką
siecią (Beowulf). Jest to inne podejście niż
w przypadku komp. mac., jednak o wiele
tańsze i kilkakrotnie bardziej wydajne.
Najstarsze i najczęściej
stosowane rozwiązanie – SMP
• Jedna pamięć współużytkowana przez wszystkie
synchronicznie działające PU. Czas dostępu
każdego PU do pamięci jest taki sam.
• Jednostka sterująca (CU lub MCU) nadzoruje
wszystkie PU. Ilość PU jest ograniczona (od 16)
do 64 – powyżej tej liczby znacznie spada
wydajność całego systemu.
• Ze względu na sposób połączeń miedzy
procesorami SMP dzieli się na trzy klasy.
Klasy SMP: Wspólna magistrala
z podziałem czasu
• Najprostsze rozwiązanie podobne do tego z
systemów jednoprocesorowych.
• Podział czasu oznacza, że w danej chwili czasu
tylko jeden moduł steruje magistralą – pozostałe
są blokowane.
• Zalety: elastyczność rozbudowy, niezawodność.
• Wady: ograniczona wydajność magistrali może ją
doprowadzić do postaci „wąskiego gardła”.
Klasy SMP: Pamięć
wieloportowa
• Każdy procesor i urządzenie I/O ma
niezależny i bezpośredni dostęp do
dowolnego bloku pamięci.
• Nie ma możliwości poinformowania innych
procesorów o aktualizacji pamięci, dlatego
stosuje się zapis jednoczesny (zmiana cache
procesora równa się zmianie określonych
danych w pamięci głównej).
Klasy SMP: Pamięć
wieloportowa
• Dostęp każdego PU do bloku pamięci
realizuje tzw. architektura przełączana. Jest
to sieć układów logicznych działająca jak
zestaw przełączników (switches).
• Dwa najczęściej stosowane systemy
przełączania to wybierak krzyżowy
(crossbar switch) i sieć omega.
Wybierak krzyżowy
punkt przełączający
• Szybki dostęp wielu
procesorów jednocześnie
do różnych bloków
pamięci. Wydajność spada
w przypadku
odwoływania się wielu
procesorów do tego
samego bloku pamięci
jednocześnie.
• Dla n procesorów i n
bloków pamięci trzeba n2
przełączników.
Sieć omega
przełącznik
poczwórny
• Dla n procesorów i n
bloków pamięci trzeba
jedynie (n/2)log2n
przełączników.
• Przy odwoływaniu się
wielu procesorów
jednocześnie do tego
samego bloku pamięci
spada wydajność.
• Każdy przełącznik ma
określony czas
przełączania, który
powoduje opóźnienia.
Klasy SMP: Centralna jednostka
sterująca (CU lub MCU)
• Najstarsze rozwiązanie SMP, obecnie należy do
rzadkości.
• CU inicjuje i nadzoruje pracę wszystkich PU.
• Rozwiązanie podobne do rozwiązania ze wspólną
magistralą, tutaj także wadą jest ograniczona
wydajność – w tym przypadku CU.
• Realizacje: ILLIAC IV, Cray-1, DAP i większość
pierwszych superkomputerów.
Nowoczesne rozwiązanie
NUMA/CC-NUMA
• Czas dostępu poszczególnych procesorów do
bloków pamięci zależy od rejonu pamięci, którego
ten dostęp dotyczy. Teoretycznie liczba
procesorów może być nieograniczona.
• NUMA składa się z węzłów sprzęgniętych siecią
połączeń. Dostęp do pamięci „cudzej” (odległe
węzły) jest dużo wolniejszy niż do pamięci
„własnej”.
• CC-NUMA dodatkowo zachowuje spójność
pamięci podręcznych.
Utrzymywanie spójności pamięci
podręcznych (cache coherence )
• Każdy PU ma własny cache oraz dostęp do
pamięci wspólnej. Musi być zastosowane
rozwiązanie zapewniające każdemu PU
dostęp do aktualnego obrazu pamięci
wspólnej.
• Wyróżnia się rozwiązania programowe
(wolniejsze) i sprzętowe (szybsze).
Utrzymywanie spójności pamięci
podręcznych (cache coherence )
• Rozwiązanie programowe – kompilator
reorganizuje kod w przypadku wykrycia
miejsca potencjalnej niespójności.
• Rozwiązania sprzętowe - protokoły
spójności: podglądania, katalogowe
(realizacja np. w NUMA), MESI (realizacja
np. w SMP).
Topologie sieci połączeń
Topologie sieci połączeń
• Realizacja połączeń pomiędzy PU
(topologia) jest bardzo ważnym
zagadnieniem wpływającym na wydajność
całego systemu.
• Należy projektować taką topologię, która
będzie szybka w działaniu i odporna na
uszkodzenie któregoś z procesorów.
ILLIAC IV
ILLIAC IV
DAP (Distributed Array
Procesor)
Cray-1
Przyszłość
• Obecnie komputery macierzowe klasy SIMD
należą do maszyn bardzo niszowych
wykorzystywanych głównie w realizacjach
systemów czasu rzeczywistego.
• Kierunek rozwoju maszyn realizujących
obliczenia na wielką skalę to systemy klasy
MIMD z pamięcią rozproszoną. Klastry i
niejednorodny dostęp do pamięci (CC-NUMA)
wskazują przyszłość superkomputerów.
• Ciągle jednak powstają superkomputery „w jednej
obudowie”. Przykładem może być Cray XD1 z
roku 2005.
Download