Taksonomia Flynna
Punktem wyjścia w temacie klasyfikacji komputerów równoległych jest systematyka wprowadzona w 1972 r.
przez Michaela J. Flynna. Klasyfikacja opiera się na prostej analizie strumieni instrukcji i strumieni
danych płynących do procesora. Strumień instrukcji to zdefiniowana sekwencja poleceń dla jednostki
sterującej procesora, zaś strumień danych to nic innego jak ruch danych między pamięcią a procesorem.
Według założeń Flynna strumienie instrukcji i strumienie danych mogą być pojedyncze lub wielokrotne.
Klasyfikując komputery według takiego kryterium otrzymujemy cztery kategorie architektur:
Architektura SISD
Do tej grupy zaliczamy klasyczne komputery sekwencyjne von Neumanna składające się z jednego procesora
z jednym strumieniem instrukcji i jednym strumieniem danych1. Procesor takiej maszyny wykonuje w danej
chwili tylko jedną operację (rys. 1). Częściowa równoległość przetwarzania danych uzyskana została
poprzez zaimplementowanie
w procesorze dodatkowych zestawów instrukcji strumieniowych, takich jak np. "Streaming SIMD Extensions"
w procesorach Pentium III czy "Hyper-Threading" w jednostkach Pentium IV.
Architektura SIMD
Architektura SIMD dotyczy tzw. komputerów wektorowych (mających skalarną
i wektorową architekturę), które z założenia przeznaczone są do realizacji ściśle wyspecjalizowanych zadań.
Procesory wchodzące w skład takich maszyn, wykonują jednakowe instrukcje (single instructions), operując
na wielu danych (multiple-data). Komputer taki posiada jedną jednostkę sterującą, która nadzoruje i synchronizuje
pracę wszystkich dostępnych procesorów (rys. 2). Ta charakterystyczna cecha komputerów wektorowych powoduje,
że doskonale sprawdzają się w przetwarzaniu dużych struktur danych. Skutecznie wspomagają modelowanie różnych
zjawisk fizycznych przy użyciu tablic, macierzy i wektorów. Doskonale sprawdzają się również w dziedzinie
przetwarzania grafiki i animacji. Pierwsze wektorowe superkomputery oparte na architekturze SIMD to ILLIAC-IV z 1972 r.,
młodszy o dwa lata STARAN, a także legendarny Cray-1. Z biegiem czasu, procesory wchodzące w skład domowych komputerów
PC, wyposażone zostały
w instrukcje potokowe z rodziny SIMD. Początkowo był to zestaw instrukcji MMX, potem 3DNow!, aż po dzisiejsze SSE
(czyli wspomniane już wcześniej "Streaming SIMD Extensions").
Architektura MISD
Następnym modelem architektury komputerów równoległych jest rzadko stosowana architektura MISD. Opiera się
ona na schemacie przetwarzania pojedynczego strumienia danych, za pomocą wielu strumieni instrukcji. MISD jest
modelem czysto teoretycznym, który nie znalazł szerszego zastosowania w praktyce. Właściwie jedynym znanym
zastosowaniem tego typu architektury, mogą być komputery wykorzystujące redundancję do minimalizacji błędów
(czyli wielokrotnie wykonujące te same obliczenia)2.
Architektura MIMD
Żadna z omówionych wyżej architektur, nie nadaje się do tzw. "obliczeń ogólnego przeznaczenia".
Komputery typu SISD z powodu przestarzałej architektury odchodzą powoli do lamusa, zaś komputery SIMD i MISD są
zbyt wyspecjalizowane do realizacji bardziej ogólnych zadań obliczeniowych. Komputery równoległe potrzebowały
modelu architektury otwartego na bardziej ogólne zastosowania. Modelu, w którym każdy
z procesorów maszyny równoległej byłby w stanie realizować jednocześnie wiele operacji, na wielu strumieniach danych.
Założenia te idealnie realizuje architektura MIMD, stanowiąc tym samym solidny fundament dla wszystkich współczesnych
komputerów równoległych. Często w literaturze, można spotkać definicję komputerów opartych na architekturze MIMD,
jako zbiorze niezależnych procesorów, które w trakcie wykonywania zadań obliczeniowych korzystają ze wspólnej pamięci
operacyjnej. Może być też tak, że każdy z szeregu procesorów
w systemie równoległym MIMD posiada własną (lokalną) pamięć operacyjną,
a z modułami pamięci innych procesorów kontaktuje się za pomocą specjalnej sieci połączeń (ang. interconnection
network)
Model architektury MIMD jest zdecydowanie najbardziej zaawansowanym technologicznie i z racji swojej wielozadaniowości
najbardziej popularnym typem architektury komputera równoległego. Komputery MIMD to silne, wieloprocesorowe maszyny
zdolne udźwignąć bardzo skompilowane zadania obliczeniowe. Warto więc przyjrzeć się im nieco bliżej.