Architektury paralelních počítačů I.

Podobné dokumenty
Architektury paralelních počítačů II.

Pokročilé architektury počítačů

OPS Paralelní systémy, seznam pojmů, klasifikace

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

Struktura a architektura počítačů (BI-SAP) 11

Mezipaměti počítače. L2 cache. L3 cache

Pokročilé architektury počítačů

Paralelní architektury se sdílenou pamětí typu NUMA. NUMA architektury

Procesy a vlákna (Processes and Threads)

Pokročilé architektury počítačů

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Paralelní a distribuované výpočty (B4B36PDV)

Systém adresace paměti

Paměťový podsystém počítače

Pokročilé architektury počítačů

Přednáška #12: Úvod do paralelních počítačů. Paralelní počítače a architektury

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Architektura počítačů Paměťová hierarchie

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Paralelní architektury - úvod

IB109 Návrh a implementace paralelních systémů. Organizace kurzu a úvod. RNDr. Jiří Barnat, Ph.D.

Představení a vývoj architektur vektorových procesorů

Pokročilé architektury počítačů

Cache paměť - mezipaměť

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

Paralelní systémy. SIMD jeden tok instrukcí + více toků dat jedním programem je zpracováváno více různých souborů dat

Roman Výtisk, VYT027

Operační systémy. Přednáška 1: Úvod

Struktura a architektura počítačů (BI-SAP) 10

Řízení IO přenosů DMA řadičem

Pokročilé architektury počítačů

Metody připojování periferií

Paralelní architektury - úvod

Referát (pokročilé architektury počítačů)

Architektura počítačů Paměťová hierarchie

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Pokročilé architektury počítačů

Konzistentnost. Přednášky z distribuovaných systémů

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 TECHNICKÉ VYBAVENÍ POČÍTAČŮ

PROCESOR. Typy procesorů

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Rychlá vyrovnávací paměť v architektuře PC

SUPERPOČÍTAČE DANIEL LANGR ČVUT FIT / VZLÚ

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Úvod do problematiky návrhu počítačových systémů. INP 2008 FIT VUT v Brně

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Provádění instrukcí. procesorem. Základní model

Pamět ová hierarchie, virtuální pamět. doc. Ing. Róbert Lórencz, CSc.

Paralelní programování

Pamět ová hierarchie, návrh skryté paměti 2. doc. Ing. Róbert Lórencz, CSc.

Martin Lísal. Úvod do MPI

Profilová část maturitní zkoušky 2015/2016

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.

Architektura počítačů Multiprocesorové systémy, problém koherence

Profilová část maturitní zkoušky 2014/2015

13. Architektury paralelních počítačů

Procesor. Procesor FPU ALU. Řadič mikrokód

CHARAKTERISTIKA MODERNÍCH PENTIÍ. Flynnova klasifikace paralelních systémů

Architektura Intel Atom

Architektura procesorů PC shrnutí pojmů

Intel (2) Intel (1) Intel (3) Intel (4) Intel (6) Intel (5) Nezřetězené zpracování instrukcí:

PROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ

Paměti a jejich organizace

Odborné tématické okruhy státní zkoušky bakalářského oboru Výpočetní technika (strukturované studium)

Strojový kód. Instrukce počítače

Paralelní výpočetní jádro matematického modelu elektrostatického zvlákňování

09. Memory management. ZOS 2006, L.Pešička

Operační systémy. Přednáška 8: Správa paměti II

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

4. Úvod do paralelismu, metody paralelizace

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

architektura mostů severní / jižní most (angl. north / south bridge) 1. Čipové sady s architekturou severního / jižního mostu

Von Neumannovo schéma

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Management procesu I Mgr. Josef Horálek

Systémy pro sběr a přenos dat

1 Osobní počítač Obecně o počítačích Technické a programové vybavení... 4

Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty

Ústav technické matematiky FS ( Ústav technické matematiky FS ) / 35

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Počítač jako elektronické, Číslicové zařízení

Operační systémy. Přednáška 2: Procesy a vlákna

Úvod do OpenMP. Jiří Fürst

Integrovaná střední škola, Sokolnice 496

Cache paměti (1) Cache paměť: V dnešních počítačích se běžně používají dva, popř. tři druhy cache pamětí:

Pokročilé architektury počítačů Multiprocesorové systémy, problém koherence

Pokročilé architektury počítačů

Přerušovací systém s prioritním řetězem

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Transkript:

Architektury paralelních počítačů I. Úvod, Koherence a konzistence u SMP Ing. Miloš Bečvář s použitím slajdů Prof. Ing. Pavla Tvrdíka, CSc.

Osnova přednášky Typy paralelismu a jejich využití v arch. poč. Architektury SMP vs DMP; SAP vs DAP Programátorské modely SM a MP Problém modelu sdílené paměti Problém paměťové koherence Cache koherenční protokoly na SMP

Typy paralelismu a jeho využití v arch. počítačů Paralelismus na úrovni instrukcí (ILP) - Pipelining instrukcí, ILP procesory - Superskalární, superpipelinové procesory Datový paralelismus (DLP) - Pipelining datových operací Jemnozrnný paralelismus (uvnitř procesoru) - SIMD a vektorové (ko)procesory Paralelismus na úrovni procesů (vláken - threadů) (TLP) - Symetrické multiprocesory (SMP), Distribuované multiprocesory (DMP), vícevláknové procesory, svazky (clustery), metapočítače a další

Terminologický chaos Proces vs vlákno (process vs thread) - Pojem procesu původně znamenal jednu instanci kódu, dat, zásobníku a stav registrů (viz původní UNIX proces) - Procesem dnes vnímáme kolekci výpočetních vláken (společný kód, část dat, ale zvláštní zásobník a stav registrů pro každé vlákno) Procesor vs procesorové jádro (core) - Procesor tradičně je tvořen jednou datovou částí a řadičem vykonávajícím jedno výpočetní vlákno (dříve proces) a je typicky realizován na jednom čipu. - Dnes jsme na čipu schopni realizovat více takových procesor a původní pojem procesor je nahrazován pojmem procesorové jádro (core) - Procesorové jádro navíc je často schopno současně zpracovávat více vláken (dříve procesů) tzv. multithreaded core (nad rámec X36APS) Dnešní a budoucí čip = procesor obsahuje Jedno či více procesorových jader, která jsou schopna současně zpracovávat jedno či více výpočetních vláken. (Multicore multithreaded processor.) Vícejádrový procesor je totéž co v původní terminologii multiprocesor na jednom ipu. Ve výkladu paralelních počítačů budeme používat původní terminologii pro proces a procesor!

Multiprocesorové systémy - klasifikace Dle HW realizace Podle programátorského modelu Sdílená pam (Shared Memory, SM ) standard OpenMP P edávání zpráv (Message Passing, MP) standardy RPC a MPI Přirozená implementace je SM na SMP a MP na DMP, svazcích a metapočítačích. Oba programátorské modely lze ale v principu implementovat na libovolném HW.

Symetrický multiprocesor - SMP PE = Processing Element Sdílená paměť PE Cache (sk. paměť)

Multiprocesor s distribuovanou pamětí - DMP Procesor či SMP Lokální paměť

DMP paměťový model sdílená paměť (SAP) Síť typu paměť - paměť

DMP paměťový model oddělená paměť (DAP) fyzický Paměť Procesor Standard MPI Síť typu paměť - paměť I na tomto typu počítače je možné vytvořit Virtuální Sdílenou Paměť! OS zajistí formou RPC čtení dat ze vzdálené fyzické paměti.

Symetrické multiprocesorové systémy (SMP) = cache Vícejádrové procesory = SMP na čipu a v budoucnu každý počítač bude SMP

Symetrické multiprocesorové systémy (SMP) = cache

Cache (skryté paměti) v SMP

Problém koherence skrytých pamětí počáteční stav P 1 P 2 P 3 X:? X:? X:? X: 6

Problém koherence skrytých pamětí t =1 P 1 P 2 P 3 PrRd(x) 6 Read miss! X: 6? X:? X:? P1: BusRd(x) X: 6 Procesor 1 nenajde data v cache a proto musí provést čtení z paměti.

Problém koherence skrytých pamětí t =2 P 1 P 2 PrRd(x) P 3 Read miss! 6 X: 6 X:? X:? 6 P3: BusRd(x) X: 6 Procesor 3 také nenajde data v cache a proto musí provést čtení z paměti. Nyní mohou oba procesory opakovaně nezávisle číst položku X.

Problém koherence skrytých pamětí t =3 P 1 P 2 PrWr(x,9) P 3 Write hit! X: 6 X:? X: 69 P3: BusWr(x,9) X: 6 / 9 Procesor 3 změní hodnotu X v cache (vždy) a také v hlavní paměti (jde-li o strategii současného zápisu Write Through) Bez dalších opatření si ovšem procesor 1 stále myslí, že X=6!

Problém koherence skrytých pamětí t =4 PrRd(x) P 1 6 Read hit! P 2 P 3 X: 6 X:? X: 9 X: 6 / 9 Bez dalších opatření si ovšem procesor 1 stále myslí, že X=6!

Problém koherence skrytých pamětí t =5 P 1 PrRd(x) P 2 Read P 3 miss! 6 / 9 X: 6 X: 6? / 9 X: 9 P2: BusRd(x) X: 6 / 9 Procesor 2 nyní přečte 6 nebo 9 v závislosti na strategii zápisu. Hodnota X= 9 se z cache procesoru 3 při strategii Write Back dostane do hlavní paměti až při nahrazování příslušného bloku!

Problém koherence skrytých pamětí souhrn příkladu Ani cache se strategií WT nezaručuje rozumné chování multiprocesorového systému s více procesory a skrytými pamětmi. Očekávané rozumné chování (chování stejné jako v systému bez skrytých pamětí): Každá operace čtení vrátí hodnotu naposledy zapsanou do této položky. Toto je intuitivní definice koherentního systému skrytých pamětí. Co znamená naposledy zapsanou? Chápou všechny procesory naposledy stejně?

Problém koherence skrytých pamětí - přesněji Definice: Řekneme že multiprocesorový paměťový systém je koherentní jestliže výsledek jakéhokoli provádění programu je takový, že pro každé paměťové místo je možné sestavit myšlené sériové pořadí čtení a zápisů k tomuto paměťovému místu a platí 1. Paměťové operace k danému paměťovému místu pro každý proces jsou provedeny v pořadí, ve kterém byly spuštěny tímto procesem. 2. Hodnoty vracené každou operací čtení jsou hodnotami naposledy provedené operace zápis do daného paměťového místa vzhledem k sériovému pořadí. Rozbor: Požadavek koherence definuje, že paměťový systém nemůže změnit pořadí provádění čtení a zápisů daného paměťového místa z hlediska každého procesu (toto musí být ostatně splněno i na jednoprocesorovém počítači). Požadavek možnosti sestavit sériové pořadí čtení a zápisů znamená, že pořadí přístupů ke každému paměťovému místu je vnímáno všemi procesy (procesory) stejně. Vzhledem k tomu, že čtení nemění stav paměťového místa, vynucuje tato definice propagaci zápis (všichni se o zápisu musí dozvědět jinak neplatí podm.2) a serializaci zápis k danému paměťovému místu (jinak různé procesory chápou jinak co je poslední provedená operace zápisu a nelze sestavit sériové pořadí operací).

Formálnější definice koherentního paměťového systému Tato definice je zcela ekvivalentní definici na předchozím slajdu. Její výhodou je formální vymezení pojmů paměťové operace a serializace zápisů. K zajištění koherence slouží tzv. cache koherenční protokoly.

Koherenční protokol založený na odposlechu (snooping)

Protokol Write Through Write Non Allocate zaj. koherence P 1 Stav bloku V valid I invalid P 2 P 3 X:? I X:? I X:? I X: 6 Jedinou změnou oproti jednoprocesorovému cache systému je implementace tzv. snoopingu (odposlechu sběrnice)

Příklad s WTWNA cache koherenčním protokolem t =1 P 1 P 2 P 3 PrRd(x) 6 Read miss! X:? 6 VI X:? I X:? I P1: BusRd(x) X: 6 Procesor 1 nenajde data v cache a proto musí provést čtení z paměti. Stav bloku v cache u P1 je nyní valid (platný).

Příklad s WTWNA cache koherenčním protokolem t =2 P 1 P 2 PrRd(x) P 3 Read miss! 6 X: 6 V X:? I X:? 6 VI P3: BusRd(x) X: 6 Procesor 3 také nenajde data v cache a proto musí provést čtení z paměti. Nyní mohou oba procesory opakovaně nezávisle číst položku X.

Příklad s WTWNA cache koherenčním protokolem t =3 P 1 P 2 PrWr(x,9) P 3 Write hit! X: 6 VI X:? I X: 69 V P3: BusWr(x,9) X: 96 Procesor 3 změní hodnotu X v cache a také v hlavní paměti Řadič cache u P1 odposlechne zápis na sběrnici a zneplatní blok X. (nový stav bloku X v cache u P1 je invalid což přinutí P1 přečíst novou hodnotu.)

Příklad s WTWNA cache koherenčním protokolem t =4 PrRd(x) P 1 9 Read miss! P 2 P 3 X: 9 6 IV I X:? I X: 9 V P1: BusRd(x) X: 9 Díky zneplatnění položky v cache je nyní procesor nucen přečíst si aktualizovanou hodnotu X z hlavní paměti.

Formální definice koherenčního protokolu s odposlechem Invalidate vychází téměř vždy lépe než update neboť při opakovaném zápisu stačí zneplatnit ostatní kopie jednou. U update protokolu je nutno opakovaně udržovat všechny kopie bez ohledu na to, zdali je o novou hodnotu bloku zájem.

Write Through Write Non Allocate Invalidation Snooping Prot. Ve stavovém diagramu vlevo jsou přechody iniciované procesorem u kterého je daný KSP: PrRd čtení dat z daného bloku procesorem, PrWr zápis do daného bloku. Za lomítkem jsou akce, které provádí KSP v průběhu daného přechodu: BusRd čtení bloku z hlavní paměti, BusWr zápis změněné hodnoty do paměti Ve stavovém diagramu vpravo jsou přechody iniciované v důsledku události na sběrnici detekované odposloucháváním. U WTWNA je jedinou událostí na sběrnici, kterou je třeba monitorovat BusWr, který způsobí zneplatnění daného bloku ve všech ostatních skrytých pamětech. A koli cílem je zachovat koherenci v i jednotlivým pam ovým míst m (bajt m), jednotkou koheren ního protokolu z praktických d vod je cache blok (typicky 16-64B)

Škálovatelnost protokolu WTWNA

Write Back invalidation protokol - MESI Podobně existuje protokol MSI a MOESI.

MESI protokol Počáteční stav P 1 P 2 P 3 X:? I X:? I X:? I X: 6

MESI protokol t =1 P 1 P 2 P 3 PrRd(x) 6 Read miss! X: 6? EI X:? I X:? I P1: BusRd(x) S=0 S=0 X: 6 Procesor 1 nenajde data v cache a proto musí provést čtení z paměti. KSP u proc.2 a proc.3 indikují signálem S=0, že nemají kopii bloku X proto je stav bloku u proc.1 Exclusive.

MESI protokol t =2 P 1 P 2 PrRd(x) P 3 Read miss! 6 X: 6 SE X:? I X:? 6 SI S=1 S=0 P3: BusRd(x) X: 6 Při čtení X z paměti indikuje KSP u procesoru 1, že daný blok již má ve své cache nastavením S=1. To způsobí, že nový stav bloku jak u proc.3 tak u proc.1 je Shared.

MESI protokol t =3 P 1 P 2 PrWr(x,9) P 3 Write hit! X: 6 IS X:? I X: 69 SM P3: BusUpgrd(x) X: 6 Procesor 3 zjistí, že chce zapisovat do bloku ve stavu Shared, proto umístí na sběrnici transakci BusUpgrd kterou zneplatní všechny ostatní kopie daného bloku v ostatních cache. BusUpgrd je krátká a nenese data, paměť není modifikována.

MESI protokol t =4 PrRd(x) P 1 6 Read miss! P 2 P 3 X: 96 IS X:? I X: 9 MS P1:BusRd(X) S=0 P3:Cache Flush S=1 X: 69 Procesor P1 při načítání obdrží aktuální hodnotu X přímo z cache procesoru 3. Při této příležitosti je též modifikována hodnota v hlavním paměti. V obou cache přechází blok do stavu Shared

MESI protokol t =5 P 1 PrWr(x, 11) P 2 P 3 Write miss! X: 9 I S X:? 11 MI X: 9 SI P2: BusRdX(x) X: 9 Procesor 2 chce změnit hodnotu X, kterou nemá v cache, proto vygeneruje transakci BusRdX, která načte daný blok a zároveň zneplatní všechny ostatní kopie. Nový stav bloku v cache u proc.2 je Modified.

Závěr Multiprocesorové systémy využívají paralelismu na úrovni procesů (vláken) HW modely jsou SMP a DMP Distribuovaná paměť v modelu DMP může být buď fyzicky sdílená (SAP) nebo oddělená (DAP) Programátorské modely jsou sdílená paměť (SP) a předávání zpráv (MP) Oba programátorské modely lze realizovat na libovolném HW Pro model sdílené paměti na SMP je stěžejní zaručení koherence skrytých pamětí K zajištění koherence skrytých pamětí slouží cache koherenční protokoly Cache koherenční protokoly jsou dle strategie zápisu WTWNA a MESI (příp. MSI, MOESI)