16. Taksonomia Flynn'a. Taksonomia systemów komputerowych według Flynna jest klasyfikacją architektur komputerowych, zaproponowaną w latach sześćdziesiątych XX wieku przez Michaela Flynna, opierająca się na liczbie przetwarzanych strumieni danych i strumieni rozkazów. W taksonomii tej wyróŝnia się cztery grupy: SISD (Single Instruction, Single Data) - przetwarzany jest jeden strumień danych przez jeden wykonywany program - komputery skalarne (sekwencyjne). Zawierają jeden procesor i jeden blok pamięci operacyjnej. Komputery wg architektury von Neumann a SIMD (Single Instruction, Multiple Data) - przetwarzane jest wiele strumieni danych przez jeden wykonywany program - tzw. komputery wektorowe. Tablice procesorów wiele prostych procesorów wykonujących operacje skalarne. Komputery SIMD stosowane do obliczeń naukowo-technicznych, jednostki realizujące zadania SIMD obecne są takŝe w procesorze Pentium. MISD (Multiple Instruction, Single Data) - wiele równolegle wykonywanych programów przetwarza jednocześnie jeden wspólny strumień danych. Systolic Arrays (szeregi tętniące) układy kolejek priorytetowych. Praktycznie nie stosowana, spotykana czasem w układach DSP (digital signal processing) MIMD (Multiple Instruction, Multiple Data) - równolegle wykonywanych jest wiele programów, z których kaŝdy przetwarza własne strumienie danych - przykładem mogą być komputery wieloprocesorowe, a takŝe klastry i gridy. NajwaŜniejszy typ architektury komputerów równoległych 17. Architektury pamięci. Dwie architektury pamięci: - Shared Memory (SM) pamięć współdzielona - Distributed Memory (DM) pamięć rozproszona SM (Shared Memory) maszyny z pamięcią wspólną (współdzieloną, globalną); wszystkie procesory mają tę samą przestrzeń adresową; dostęp do danych zgodnie z regułami zasięgu danego języka programowania; SMP wariant: Symmetric Multi Processing. DM (Distributed Memory) maszyny z pamięcią rozproszoną (lokalną); maszyny z procesorami posiadającymi kaŝdy odrębną pamięć (przestrzeń adresową); takŝe systemy połączone przez sieć (klastery); Programista musi dokonać explicite podziału danych między procesory; większa skalowalność. 18. Atrybuty maszyn SISD. Występują w nich pewne elementy rownoległości - pipelining. przetwarzanie potokowe, - SSE. rozszerzenia streaming SIMD extensions. Systemy wieloprocesorowe wykonujące niezaleŝne programy sekwencyjne. 19. Atrybuty maszyn (SM-, DM-) SIMD. SM-SIMD maszyny wektorowe: w sposób równoległy (po współrzędnych) wykonywane są ciągi tych samych operacji, zrównoleglanie wykonywane automatycznie poprzez kompilator, przykłady: CDC Cyber 205, Cray 1, Cray 2.
DM-SIMD tablice procesorów: jeden procesor sterujący, duŝa ilość prostych procesorów z pamięcią lokalną połączonych tylko z sąsiadami, ta sama instrukcja wykonywana na lokalnych danych przez wszystkie procesory, wymiana danych tylko z sąsiadami (routing), specjalistyczne i historyczne (lata 80-te XX w.), przykłady: Thinking Machines CM-2, MasPar MP-1. 20. Atrybuty i architektury pamięci maszyn SM-MIMD. SM-MIMD pamięć wspólna umiarkowana liczba działających niezaleŝnie procesorów, globalna pamięć, jednorodnie adresowana, teoretyczny model PRAM (Parallel RandomAccess Memory), SMP (Symmetric Multi-Processing) oznaczenie marketingowe, przykłady: Cray T90, SGI Challenge, Sun 690.
W praktyce dostęp do pamięci nie jest całkowicie jednolity: przełącznica krzyŝowa (crossbar switch) zapewnia ten sam czas dostępu, wspólna magistrala danych (bus) najtańsze rozwiązanie, wielostopniowa przełącznica krzyŝowa (np. typu W). Crossbar switch: Bus:
Cache: Omega switch:
Koszty połączeń: Przełącznica krzyŝowa O(p2) czas odczytu średnio jak dla 1-go procesora Magistrala O(p) pamięć cache buforująca często uŝywane dane, czas dostępu moŝe rosnąć aŝ do p Przełącznica Omega O(p log2 p) elementy łączą we z wy na wprost gdy i-ty bit adresu źródła jest równy i-temu bitowi adresu celu, w kolejnych warstwach adresy przesunięte o jeden z zapętleniem, jednocześnie moŝna przesłać p pakietów Cechy SM-MIMD: Zaletę stanowi względna łatwość realizacji oraz programowania: jednolita przestrzeń adresowa, zbędne specjalne mechanizmy komunikacji, konieczny mechanizm synchronizacji. Słaba skalowalność liczby procesorów: brak moŝliwości proporcjonalnego wzrostu przepustowości dostępu do pamięci.