Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2011/2012 Wykład nr 6 (27.04.2012) dr inż. Jarosław Forenc
Rok akademicki 2011/2012, Wykład nr 6 2/46 Plan wykładu nr 6 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 Architektura von Neumanna Architektura harwardzka Zmodyfikowana architektura harwardzka
Rok akademicki 2011/2012, Wykład nr 6 3/46 Klasyfikacja systemów komputerowych Taksonomia Flynna - pierwsza, najbardziej ogólna klasyfikacja architektur komputerowych (1972): Flynn M.J.: Some Computer Organizations and Their Effectiveness, IEEE Transactions on Computers, Vol. C-21, No 9, 1972. Opiera się na liczbie przetwarzanych strumieni rozkazów i strumieni danych: strumień rozkazów (Instruction Stream) - odpowiednik 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) - zbiór operandów, np. system rejestrujący temperaturę mierzoną przez n czujników posiada n strumieni danych
Rok akademicki 2011/2012, Wykład nr 6 4/46 Taksonomia Flynna SI - Single instruction MI - Multiple Instruction SD - Single Data MD - Multiple Data SM - Shared Memory DM - Distributed Memory
Rok akademicki 2011/2012, Wykład nr 6 5/46 Klasyfikacja systemów komputerowych
Rok akademicki 2011/2012, Wykład nr 6 6/46 SISD (Single Instruction, Single Data) Jeden wykonywany program przetwarza jeden strumień danych Klasyczne komputery zbudowane według architektury von Neumanna SISD Zawierają jeden procesor i jeden blok pamięci operacyjnej, w której znajduje się program - ciąg instrukcji wykonywanych sekwencyjnie - instrukcje -dane -wyniki
Rok akademicki 2011/2012, Wykład nr 6 7/46 SISD (Single Instruction, Single Data) Elementy równoległości systemach typu SISD: 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 wielordzeniowość (multi-core processor) - jeśli każdy rdzeń wykonuje niezależny program, to komputer można traktować jako zestaw maszyn typu SISD
Rok akademicki 2011/2012, Wykład nr 6 8/46 SISD (Single Instruction, Single Data) Komputer IBM PC/AT Komputer PC Komputer PC Laptop
Rok akademicki 2011/2012, Wykład nr 6 9/46 SIMD (Single Instruction, Multiple Data) Jeden wykonywany program przetwarza wiele strumieni danych Te same operacje wykonywane są na różnych danych Podział: SM-SIMD (Shared Memory SIMD) - komputery wektorowe DM-SIMD (Distributed Memory SIMD) - tablice procesorów SIMD - instrukcje -dane -wyniki
Rok akademicki 2011/2012, Wykład nr 6 10/46 SM-SIMDSIMD - Komputer wektorowy Podstawowy element to procesor wektorowy Procesor wykonuje rozkazy wektorowe w sposób potokowy Procesor powtarza ciągi elementarnych operacji arytmetycznych na strumieniach danych tworzących wektor źródło: http://www.gigaflop.demon.co.uk/comp/chapt2.htm
Rok akademicki 2011/2012, Wykład nr 6 11/46 SM-SIMDSIMD - Komputery wektorowe CDC Cyber 205 (1981) Cray-1 (1976) Cray-2 (1985) Hitachi S3600 (1994)
Rok akademicki 2011/2012, Wykład nr 6 12/46 SM-SIMDSIMD - Rozszerzenia strumieniowe procesorów Do SM-SIMD można zaliczyć rozszerzenia strumieniowe procesorów zwiększające wydajność operacji graficznych i multimedialnych: MMX - MultiMedia extensions, 1997 rok, Intel Pentium MMX (64-bits) 3DNow!, 1998 rok, AMD K6-2 SSE - Streaming SIMD Extensions, 1999 rok, Intel Pentium III (128-bits) SSE2 - Streaming SIMD Extensions 2, 2001 rok, Intel Pentium 4 SSE3 - Streaming SIMD Extensions 3, 2004 rok, Pentium 4 Prescott SSSE3 - Supplemental Streaming SIMD Extensions 3 SSE4 - Streaming SIMD Extensions 4, 2007 rok AVX - Advanced Vector Extensions, Intel, AMD, 2011 rok SSE5 - Streaming SIMD Extensions 5, AMD (niezaimplementowane)
Rok akademicki 2011/2012, Wykład nr 6 13/46 DM-SIMD - Tablice procesorów Zawierają jeden procesor sterujący i dużą liczbę prostych procesorów z pamięcią lokalną Procesory wykonują te same operacje wydawane przez procesor sterujący Każdy procesor pracuje na swoich lokalnych danych Wymiana danych możliwa jest pomiędzy sąsiadującymi procesorami Stosowane w latach 70-tych i na początku lat 80-tych źródło: http://www.gigaflop.demon.co.uk/comp/chapt2.htm
Rok akademicki 2011/2012, Wykład nr 6 14/46 DM-SIMD - Tablice procesorów Illiac IV (1976) MasPar MP-1/MP-2 (1990) Thinking Machines CM-2 (1987) Illiac IV (1976)
Rok akademicki 2011/2012, Wykład nr 6 15/46 DM-SIMD - Procesory graficzne (GPU) Do systemów typu DM-SIMD można zaliczyć procesory graficzne 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
Rok akademicki 2011/2012, Wykład nr 6 16/46 DM-SIMD - Architektura GPU (GeForce GTX 200) Multiprocesor strumieniowy (SM) Klaster wątków (TPC - Thread Processing Cluster) źródło: www.anandtech.com Macierz procesorów strumieniowych (SPA - Streaming Processor Array) 1 GPU = 10 TPC 1 GPU = 30 SM 1 GPU = 240 SP
Rok akademicki 2011/2012, Wykład nr 6 17/46 DM-SIMD - Architektura GPU (GeForce GTX 200) źródło: www.anandtech.com
Rok akademicki 2011/2012, Wykład nr 6 18/46 DM-SIMD - GPGPU: wykonywanie programu Wątek (thread) Blok wątków (thread block) Siatka (grid) SP - Streaming Processor warp (32-threads) SM - Streaming Multiprocessor Grid 1 Block (0,0) Block (0,1) Block (1,0) Block (1,1) registers local memory shared memory GPU - Graphics Processing Unit global memory constant memory texture memory
Rok akademicki 2011/2012, Wykład nr 6 19/46 DM-SIMD - Procesory graficzne (GPU) GeForce GTX 295 Tesla C1060 Tesla S1070 Tesla D870
Rok akademicki 2011/2012, Wykład nr 6 20/46 MISD (Multiple Instruction, Single Data) Wiele równolegle wykonywanych programów przetwarza jednocześnie jeden wspólny strumień danych Systemy tego typu nie są spotykane
Rok akademicki 2011/2012, Wykład nr 6 21/46 MIMD (Multiple Instruction, Multiple Data) Równolegle wykonywanych jest wiele programów, z których każdy przetwarza własne strumienie danych Najbardziej popularna grupa systemów równoległych Podział: SM-MIMD (Shared Memory) - wieloprocesory DM-MIMD (Distributed Memory) - wielokomputery, klastry, gridy
Rok akademicki 2011/2012, Wykład nr 6 22/46 SM-MIMDMIMD - Wieloprocesory Systemy z niezbyt dużą liczbą działających niezależnie procesorów Każdy procesor ma dostęp do wspólnej przestrzeni adresowej pamięci Komunikacja procesorów poprzez uzgodniony obszar wspólnej pamięci Do SM-MIMD należą komputery z procesorami wielordzeniowymi Podział: UMA (Uniform Memory Access) NUMA (NonUniform Memory Access) COMA (Cache Only Memory Access)
Rok akademicki 2011/2012, Wykład nr 6 23/46 SM-MIMDMIMD - Wieloprocesory UMA Czas dostępu do pamięci jest jednakowy dla każdej pary procesor-pamięć Najprostsza architektura opiera się na pojedynczej magistrali CPU CPU CPU M M Magistrala Problem rywalizacji procesorów o dostęp do magistrali można złagodzić stosując w każdym procesorze pamięć podręczną (cache) Zastosowanie pamięci cache wymaga zapewnienia spójności cache (cache consistency, cache coherence)
Rok akademicki 2011/2012, Wykład nr 6 24/46 SM-MIMDMIMD - Wieloprocesory UMA Innym rozwiązaniem zapewniającym jednakowy czas dostępu procesorów do pamięci jest przełącznica krzyżowa Przełącznik może być elektrycznie zamykany lub otwierany 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
Rok akademicki 2011/2012, Wykład nr 6 25/46 SM-MIMDMIMD - Wieloprocesory NUMA NUMA - NonUniform Memory Access - niejednolity czas dostępu do pamięci Czas dostępu zależy od wzajemnego położenia procesora i modułu pamięci Podział: NC-NUMA (Non-Cached NUMA) - spójność pamięci cache zapewniania oprogramowanie ccnuma (cache-coherent NUMA) - spójność pamięci cache zapewniana na drodze sprzętowej
Rok akademicki 2011/2012, Wykład nr 6 26/46 SM-MIMDMIMD - Wieloprocesory COMA COMA (Cache Only Memory Architecture) - lokalna pamięć każdego procesora jest używana jak pamięć cache Fizyczna przestrzeń adresowa podzielona zostaje na linie cache, które mogą na żądanie migrować po systemie Podstawowym problemem jest odszukanie potrzebnych danych
Rok akademicki 2011/2012, Wykład nr 6 27/46 SM-MIMD MIMD - Wieloprocesory Cray YM-P (1988) Cray J90 (1994) Cray CS6400 (1993)
Rok akademicki 2011/2012, Wykład nr 6 28/46 SM-MIMD MIMD - Wieloprocesory NEC SX-4 (1994) NEC SX-6 (2002) NEC SX-5 (1995) NEC SX-8 (2005)
Rok akademicki 2011/2012, Wykład nr 6 29/46 DM-MIMDMIMD - Wielokomputery Każdy procesor wyposażony jest we własną pamięć operacyjną, niedostępną dla innych procesorów Komunikacja między procesorami odbywa się za pomocą sieci poprzez przesyłanie komunikatów Biblioteki komunikacyjne: MPI (Message Passing Interface) PVM (Parallel Virtual Machine) Najpopularniejsza i najszybciej rozwijająca się grupa maszyn równoległych
Rok akademicki 2011/2012, Wykład nr 6 30/46 DM-MIMD MIMD - Wielokomputery Cray T3E (1995) Thinking Machines CM-5 (1991) ncube 2s (1993) Meiko CS-2 (1993)
Rok akademicki 2011/2012, Wykład nr 6 31/46 DM-MIMDMIMD - Klastry Klaster (cluster): równoległy lub rozproszonego system składający się z komputerów komputery połączone są siecią używany jest jako pojedynczy, zintegrowany zespół obliczeniowy Węzeł (node) - pojedynczy komputer przyłączony do struktury klastra i wykonujący zadania obliczeniowe
Rok akademicki 2011/2012, Wykład nr 6 32/46 DM-MIMDMIMD - Klastry Miejsce instalacji: Politechnika Białostocka Wydział Elektryczny KETiM Rok instalacji: 2004-2006 Typ klastra: homogeniczny dedykowany Liczba węzłów: 7 Sieć komputerowa: Gigabit Ethernet
Rok akademicki 2011/2012, Wykład nr 6 33/46 DM-MIMDMIMD - Klastry Klastry Beowulf budowane były ze zwykłych komputerów PC Odin II Beowulf Cluster Layout, University of Chicago, USA
Rok akademicki 2011/2012, Wykład nr 6 34/46 DM-MIMDMIMD - Klastry Klastry Beowulf budowane były ze zwykłych komputerów PC NASA 128-processor Beowulf cluster: A cluster built from 64 ordinary PC's
Rok akademicki 2011/2012, Wykład nr 6 35/46 DM-MIMDMIMD - Klastry Klastry Beowulf budowane były ze zwykłych komputerów PC 61 node Beowulf cluster with 122 2.4 GHz Xeon processors, Boise State University
Rok akademicki 2011/2012, Wykład nr 6 36/46 DM-MIMDMIMD - Klastry Early Aspen Systems Beowulf Cluster With RAID
Rok akademicki 2011/2012, Wykład nr 6 37/46 DM-MIMDMIMD - Klastry Klaster zbudowany z 336 konsol Sony PlayStation 3 Air Force Research Laboratory's Rome Laboratory in Rome, N.Y.
Rok akademicki 2011/2012, Wykład nr 6 38/46 DM-MIMDMIMD - Klastry Najszybszy klaster na świecie (według listy TOP500) K computer, SPARC64 VIIIfx 2.0 GHz, Tofu interconnect
Rok akademicki 2011/2012, Wykład nr 6 39/46 Architektura von Neumanna Rodzaj architektury komputera, opisanej w 1945 roku przez matematyka Johna von Neumanna Inne spotykane nazwy: architektura z Princeton, store-program computer (koncepcja przechowywanego programu) Zakłada podział komputera na kilka części: jednostka sterująca (CU - Control Unit) jednostka arytmetyczno-logiczna (ALU - Arithmetic Logic Unit) pamięć główna (memory) urządzenia wejścia-wyjścia (input/output)
Rok akademicki 2011/2012, Wykład nr 6 40/46 Architektura von Neumanna - podstawowe cechy Informacje przechowywane są w komórkach pamięci (cell) o jednakowym rozmiarze Jednostka informacji to słowo (word) Każda komórka pamięci ma swój numer zwany adresem (adresy są uporządkowane i jednoznacznie określone) Zawartość komórki pamięci może zmienić tylko procesor wykonując rozkaz przesłania słowa do pamięci Dane oraz instrukcje programu (rozkazy) przechowywane są w tej samej pamięci i są jednakowo dostępne dla procesora Dane i instrukcje zakodowane są za pomocą liczb
Rok akademicki 2011/2012, Wykład nr 6 41/46 Architektura von Neumanna - podstawowe cechy Praca komputera to sekwencyjne odczytywanie instrukcji z pamięci komputera i ich wykonywanie w procesorze Wykonanie rozkazu: pobranie z pamięci słowa będącego kodem instrukcji pobranie z pamięci danych przetworzenie danych (wykonanie instrukcji) zapisanie wyników do pamięci Dane i instrukcje odczytywane są przy wykorzystaniu tej samej magistrali Wadą architektury von Neumanna jest ograniczony transfer pomiędzy procesorem a pamięcią (von Neumann bottleneck) Rozwiązanie: zastosowanie pamięci podręcznej (cache)
Rok akademicki 2011/2012, Wykład nr 6 42/46 Architektura harwardzka Architektura komputera, w której pamięć danych programu jest oddzielona od pamięci instrukcji Nazwa architektury pochodzi komputera Harward Mark I: zaprojektowany przez Howarda Aikena pamięć instrukcji - taśma dziurkowana, pamięć danych - elektromechaniczne liczniki
Rok akademicki 2011/2012, Wykład nr 6 43/46 Architektura harwardzka Pamięci danych i instrukcji mogą różnić się: technologią wykonania strukturą adresowania długością słowa Przykład: ATmega16-16kB Flash, 1 kb SRAM, 512 B EEPROM Pamięć instrukcji i danych zajmują inną przestrzeń adresową Procesor może w tym samym czasie czytać instrukcje oraz uzyskiwać dostęp do danych Architektura szybsza od architektury von Neumanna
Rok akademicki 2011/2012, Wykład nr 6 44/46 Architektura harwardzka i von Neumanna W architekturze harwardzkiej pamięć instrukcji i pamięć danych: zajmują różne przestrzenie adresowe mają oddzielne szyny (magistrale) do procesora zaimplementowane są w inny sposób Procesor Magistrala instrukcji Magistrala danych Pamięć programu (instrukcje programu) Pamięć danych (dane programu) Architektura von Neumanna Architektura harwardzka
Rok akademicki 2011/2012, Wykład nr 6 45/46 Zmodyfikowana architektura harwardzka Łączy w sobie cechy architektury harwardzkiej i von Neumanna Oddzielone pamięci danych i rozkazów, lecz wykorzystujące wspólne magistrale: danych i adresową Pozwala na dostęp do pamięci instrukcji tak jakby były to dane W obecnie stosowanych procesorach występują elementy obu architektur: pamięć operacyjna (RAM) komputera jest to typowa architektura von Neumanna pamięć podręczna (cache) podzielona jest na pamięć instrukcji i pamięć danych
Rok akademicki 2011/2012, Wykład nr 6 46/46 Koniec wykładu nr 6 Dziękuję za uwagę!