Klasyfikacja systemów komputerowych

advertisement
Architektura von Neumanna
Klasyfikacja systemów komputerowych
(Flynna)




SISD - Single Instruction Single Data
SIMD - Single Instruction Multiple Data
MISD - Multiple Instruction Single Data
MIMD - Multiple Instruction Multiple Data
 Pierwsza, najbardziej ogólna klasyfikacja architektur
komputerowych to tzw. taksonomia Flynna (1972)
 Klasyfikacja została przedstawiona w pracy:
Flynn M.J.: „Some Computer Organizations and Their
Effectiveness”, IEEE Transactions on Computers,
Vol. C-21, No 9, 1972.
 Taksonomia Flynna opiera się na liczbie
przetwarzanych strumieni rozkazów i strumieni
danych.
strumień rozkazów (Instruction Stream) - jest
odpowiednikiem licznika rozkazów; system
złożony z n procesorów posiada n liczników
rozkazów, a więc n strumieni rozkazów
strumień danych (Data Stream) - jest zbiorem
operandów, np. system rejestrujący temperaturę
mierzoną przez n czujników posiada n strumieni
danych
Klasyfikacja systemów komputerowych
SISD (Single Instruction Single Data)
 klasyczne, najtańsze komputery sekwencyjne (PC,
laptopy)
SIMD (Single Instruction Multiple Data)
 te same operacje wykonywane są na różnych danych
 SM-SIMD (Shared Memory) - komputery wektorowe
 DM-SIMD (Distributed Memory) - tablice procesorów
MISD (Multiple Instruction Single Data)
różne operacje wykonywane na tych samych danych
(nie spotykane)
MIMD (Multiple Instruction Multiple Data)
różne operacje wykonywane na różnych danych,
ale stanowiące część tego samego zadania obliczeniowego
 SM-MIMD - maszyny z pamięcią wspólną
(wieloprocesory)
 DM-MIMD - maszyny z pamięcią lokalną (wielokomputery)
SISD (Single Instruction, Single Data)
 Przetwarzany jest jeden strumień
danych przez jeden wykonywany
program
 Klasyczne, najtańsze maszyny
sekwencyjne, zbudowane według
architektury von Neumanna
 Zawierają jeden procesor i jeden
blok pamięci operacyjnej,
w której znajduje się program - ciąg instrukcji
wykonywanych sekwencyjnie
 Jeśli jeden komputer ma kilka procesorów, z których
każdy wykonuje niezależny program, to można
traktować go jako zestaw maszyn typu SISD
SISD (Single Instruction, Single Data)
 W maszynach typu SISD występują elementy
równoległości:
 przetwarzanie potokowe (pipelining)
rozszerzenia strumieniowe (MMX, SSE, AltiVec, 3DNow!)
do szybkiego przetwarzania grafiki i multimediów
 hiperwątkowość (HT, HyperThreading) - obsługa
dwóch niezależnych wątków przez jedną jednostkę
wykonawczą procesora
SISD (Single Instruction, Single Data)
SIMD (Single Instruction, Multiple Data)
 Przetwarzanych jest wiele strumieni
danych przez jeden wykonywany
program, czyli te same operacje
wykonywane są na różnych danych
 Dzielą się na dwie grupy:
 SM-SIMD (Shared Memory SIMD) komputery wektorowe
 DM-SIMD (Distributed Memory SIMD) tablice procesorów
SM-SIMD - Komputery wektorowe
 Główny składnik to jeden lub kilka stanowiących logicznie
jeden, procesor wektorowy, w którym w sposób równoległy
wykonywane są ciągi tych samych operacji;
SM-SIMD - Komputery wektorowe
 W momencie rozpoczęcia wykonywania instrukcji poszczególne
procesory pobierają dane, a po jej zakończeniu wysyłają
wyniki do tej samej globalnej pamięci;
 Proste programowanie, gdyż program sekwencyjny jest
automatycznie zrównoleglany przez kompilator
 Do podejścia Shared Memory SIMD można zaliczyć
wprowadzenie do procesorów rozszerzeń strumieniowych
zwiększających wydajność operacji graficznych i
multimedialnych:
 MMX - MultiMedia eXtensions, 1997 rok, Intel Pentium MMX
 3DNow!, 1998 rok, AMD K6-2
 SSE - Streaming SIMD Extensions, 1999 rok, Intel Pentium III
 SSE2 - Streaming SIMD Extensions 2, 2001 rok, Intel Pentium 4




SSSE3 - Supplemental Streaming SIMD Extensions 3
SSE4 - Streaming SIMD Extensions 4, 2007 rok
AVX - Advanced Vector Extensions - planowane: 2010 rok
SSE5 - Streaming SIMD Extensions 5 - planowane: 2011 rok
DM-SIMD - Tablice procesorów
 Maszyny składające się z jednego procesora sterującego i
dużej liczby prostych procesorów z pamięcią lokalną
DM-SIMD - Tablice procesorów
 Każdy procesor wykonuje te same instrukcje (wydawane przez
procesor sterujący), w tym samym czasie, na swych danych
lokalnych
 Wymiana danych pomiędzy sąsiadującymi procesorami:
left, right, up, down, (+ front, back dla 3D)
 Stosowane w latach 70-tych i na początku lat 80-tych
DM-SIMD - Procesory graficzne
 Do podejścia DM-SIMD można zaliczyć obliczenia ogólnego
przeznaczenia realizowane na procesorach kart graficznych
GPGPU
 General Purpose computing on Graphics Processing Units
 obliczenia ogólnego przeznaczenia realizowane za pomocą
procesora graficznego
 NVIDIA CUDA (Compute Unified Device Architecture)
 równoległa architektura obliczeniowa
 bezpłatne środowisko zawierające: narzędzia do kompilacji,
uruchamiania i testowania programów, biblioteki numeryczne
 pierwsza wersja: listopad 2006
 umożliwia stworzenie programu w języku C/C++ wykonywanego
jednocześnie na CPU (host) i GPU (device) firmy NVIDIA
CUDA - Architektura GPU (GeForce GTX 200)
 Podstawowym elementem architektury jest
multiprocesor strumieniowy (SM):
• 8 x SP - osiem procesorów strumieniowych
• 2 x SFU (Special Function Unit) - dwie jednostki
specjalne do obliczania funkcji
trygonometrycznych,wykładniczych, logarytmicznych
• DP - jeden procesor podwójnej precyzji (fp64),
(brak na rysunku!!!)
• Shared Memory - pamięć współdzielona (16 kB)
• I Cache - pamięć podręczna instrukcji
• C Cache - pamięć podręczna danych, tylko odczyt
• MT Issue - jednostka sterująca (Multithreaded
Instruction Fetch And Issue)
16.384 rejestry 32-bitowe
CUDA - Architektura GPU (GeForce GTX 200)
 3 multiprocesory połączone razem
tworzą klaster (TPC - Thread
Processing Cluster)
 Klaster zawiera również:

odpowiednią logikę sterującą
(Geometry Controller + SMC)
 jednostki tekstur (Texture Units)
 Jednostki tekstur zawierają:
 logikę adresowania i filtrowania
tekstur
 pamięć podręczną tekstur
(Texture L1)
CUDA - Architektura GPU (GeForce GTX 200)
10 klastrów tworzy macierz procesorów strumieniowych
(SPA - Streaming Processor Array)
1 GPU = 10 TCP
1 GPU = 30 SM
1 GPU = 240 SP
CUDA - Architektura GPU (GeForce GTX 200)
GPU z dodatkowymi elementami (pamięć DRAM, interfejs PCIe)
Produkty z obsługą CUDA
NVIDIA GeForce z serii 8, 9, 100, 200, 400 i 500
• karty graficzne ogólnego zastosowania
• od GeForce 8400 GS do GeForce GTX 580
NVIDIA Quadro z serii Plex, FX, NVS
• systemy wizualizacji, CAD
• zastosowania biznesowe (systemy wielomonitorowe)
NVIDIA Tesla
• dedykowane do zastosowań GPGPU
• Tesla C870, Tesla D870, Tesla S870
• Tesla C1060, Tesla S1070, Tesla M1060
• Tesla M2050/2070, C2050/2070, S2050
Produkty z obsługą CUDA
Produkty z obsługą CUDA
MISD (Multiple Instruction, Single Data)
 Wiele równolegle wykonywanych
programów przetwarza
jednocześnie jeden wspólny
strumień danych
 Tego typu systemy nie są
spotykane
 Możliwe zastosowania:
• systemy uczące się - różne
procesory odczytują i modyfikują
w losowej kolejności te same dane
MIMD (Multiple Instruction, Multiple Data)
 Równolegle wykonywanych jest
wiele programów, z których każdy
przetwarza własne strumienie
danych
 Jest to najbardziej popularna
grupa systemów równoległych
 Systemy te dzielą się na dwie
grupy:
• SM-MIMD (Shared Memory) wieloprocesory
• DM-MIMD (Distributed Memory) – wielokomputery , klastry,
SM-MIMD - Wieloprocesory
 Maszyny posiadające niezbyt dużą
liczbę procesorów działających
niezależnie, z których każdy ma
dostęp do wspólnej przestrzeni
adresowej pamięci
 Procesory komunikują się ze sobą
zapisując i odczytując dane
w uzgodnionym obszarze
wspólnej pamięci
 Praca wszystkich wieloprocesorów
sterowana jest przez pojedynczą
kopię systemu operacyjnego
 Do grupy tej zalicza się także wszystkie
komputery z procesorami wielordzeniowymi
SM-MIMD - Wieloprocesory
 Zależnie od sposobu realizacji pamięci współdzielonej,
wieloprocesory dzielą się na trzy grupy:
 UMA (Uniform Memory Access) - jednolity dostęp do pamięci
• czas dostępu jest jednakowy dla każdej pary procesor-pamięć
• jeśli nie jest to możliwe, to szybsze odwołania są sztucznie
spowalniane do wolniejszych
 NUMA (NonUniform Memory Access) - niejednolity dostęp
do pamięci
• procesor uzyskuje szybszy dostęp do tych modułów pamięci,
które są bliżej niego
 COMA (Cache Only Memory Access) - dostęp wyłącznie przez
pamięć cache
SM-MIMD - Architektura UMA z magistralą
 Architektura najprostszych systemów bazuje na pojedynczej
magistrali, do której przyłączone są dwa lub więcej procesorów
oraz kilka modułów pamięci
 przed odczytem danych z pamięci procesor sprawdza czy
magistrala jest wolna, jeśli tak to wysyła na magistralę adres
słowa, ustawia odpowiednio stan sygnałów sterujących i
oczekuje aż odczytywana wartość pojawi się na magistrali
 Dużym problemem w tego typu układach jest rywalizacja
procesorów o dostęp do magistrali
SM-MIMD - Architektura UMA z magistralą
 Problem rywalizacji procesorów o dostęp do magistrali
można złagodzić stosując w każdym procesorze pamięć
podręczną cache
 Większość odczytów następuje wtedy z pamięci cache
i magistrala zostaje odciążona
 Zastosowanie pamięci cache wymaga zapewnienia
spójności cache (cache consistency, cache coherence)
SM-MIMD - Architektura UMA z przełącznicą
 Innym rozwiązaniem zapewniającym jednakowy czas
dostępu procesorów do pamięci jest przełącznica krzyżowa
 Skrzyżowanie linii poziomej z pionową nazywane jest
punktem skrzyżowania
 Fizycznie punkt
skrzyżowania ma
postać małego przełącznika,
który może być elektrycznie
zamykany lub otwierany
SM-MIMD - Architektura UMA z przełącznicą
 Przy umiarkowanej liczbie procesorów i modułów pamięci
przełącznice krzyżowe spisują się bardzo dobrze
 Konstruowanie dużych przełącznic jest bardzo kosztowne
i z tego powodu nie są one stosowane
SM-MIMD - Architektura NUMA
 W wieloprocesorach z niejednolitym czasem dostępu do
pamięci
(NUMA - NonUniform Memory Access) lokalne moduły
pamięci są szybciej dostępne dla procesora niż pozostałe,
zdalne moduły
 Gdy dostęp do zdalnej pamięci nie jest wspomagany
cache’owaniem, architekturę wieloprocesora określa się
skrótem NC-NUMA (Non-Cached NUMA)
 Architektura wieloprocesora wspomagana systemem
spójnego cache’owania opatrywana jest skrótem ccNUMA
(cache-coherent NUMA)
SM-MIMD - Architektura COMA
 Wieloprocesory COMA (Cache Only Memory Access)
wykorzystują główną pamięć każdego procesora jako dużą
pamięć cache
 Fizyczna przestrzeń adresowa podzielona zostaje na linie
cache, które mogą na żądanie migrować po systemie
SM-MIMD - Wieloprocesory
SM-MIMD - Wieloprocesory
DM-MIMD - Wielokomputery
 Systemy w których każdy procesor wyposażony jest we własną
pamięć operacyjną, niedostępną dla innych procesorów
• każdy procesor działa
niezależnie i może
operować tylko na swojej
prywatnej pamięci
• procesory komunikują
się za pomocą sieci
połączeniowej
wymieniając między sobą
komunikaty
• jest to najpopularniejsza i najdynamiczniej rozwijająca
się grupa maszyn równoległych
• do wielokomputerów zalicza się także klastry
DM-MIMD - Wielokomputery
DM-MIMD - Klastry
Klaster (ang. cluster):
• równoległy lub rozproszonego system składający się
z komputerów PC lub stacji roboczych
• komputery połączone są siecią
• używany jest jako pojedynczy, zintegrowany zespół obliczeniowy
 Pojedynczy komputer przyłączony do struktury klastra i
wykonujący zadania obliczeniowe nazywany jest węzłem klastra
(ang. node)
DM-MIMD - Klastry
Klastry Beowulf budowane były ze
zwykłych komputerów PC
Early Aspen Systems
Beowulf Cluster With RAID
Klaster zbudowany z 336 konsol
Sony PlayStation 3
SuperMUC to nazwa nowego superkomputera w LeibnizRechenzentrum (centrum Superkomputerowe Leibniz) w
Garching obok Monachium (MUC sufiks jest zapożyczone z kod
lotniska Munich). Z więcej niż 155.000 rdzeni i najwyższą
wydajność Petaflop 3/s (= 10 ^ 15 Floating Point operacji na
sekundę) w czerwcu 2012 roku SuperMUC jest jednym z
najszybszych superkomputerów na świecie.
Download