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

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

Pokročilé architektury počítačů

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

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

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

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

PARALELNÍ PROCESY A PROGRAMOVÁNÍ

Paralelní programování

Principy operačních systémů. Lekce 6: Synchronizace procesů

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

Pokročilé architektury počítačů

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

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

Procesy a vlákna (Processes and Threads)

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

Paralelní programování

Řada programovacích jazyků nabízí prostředky pro řešení meziprocesové komunikace jako je synchronizace a řízení přístupu do kritické sekce.

Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí

Možnosti programování se sdílenými proměnnými. Týden 6 Programování se sdílenými proměnnými (Shared Variables, SV) Procesy a vlákna.

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH

Paralelní programování

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

Úvod do Linuxu. SŠSI Tábor 1

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

Procesy a vlákna - synchronizace


Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Pokročilé architektury počítačů

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

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

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

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

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

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

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

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

Pavel Procházka. 3. prosince 2014

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.

Operační systémy Tomáš Hudec. 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu Obědvající filosofové

Dynamické programování

5. STRUKTURA PLC PROGRAMU

Princip funkce počítače

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

Paralelní programování

Adresní mody procesoru

Synchronizace Mgr. Josef Horálek

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.

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

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

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

ZOS 9. cvičení, ukázky kódu. Pavel Bžoch

Ukázka zkouškové písemka OSY

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

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

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

Transakční zpracování

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

Systém adresace paměti

Luděk Matyska. Jaro 2014

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

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

Obvody a architektura počítačů. Jednoprocesorové počítače

Architektura Intel Atom

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í.

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

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

Architektura procesorů PC shrnutí pojmů

Správa procesoru. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 11. březen, 2011

Pokročilé architektury počítačů

Správa procesoru. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška III. 7. listopad, / 23

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

Paměti Flash. Paměti Flash. Základní charakteristiky

Pohled do nitra mikroprocesoru Josef Horálek

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

SYSTÉMY NAČIPU MI-SOC

Architektura počítače

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

Principy počítačů a operačních systémů

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

Databázové systémy. transakce. Tomáš Skopal. * vlastnosti transakcí * rozvrhy

TÉMATICKÝ OKRUH Softwarové inženýrství

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

Příprava na zk. z KIV/DS

Architektura počítačů

Pokročilé architektury počítačů

Nvidia CUDA Paralelní programování na GPU

Registrový model HDD

2 Hardware a operační systémy

Paralelní programování

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

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

7. Popis konečného automatu

Vstupně výstupní moduly. 13.přednáška

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

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

Charakteristika dalších verzí procesorů v PC

Úvod do architektur personálních počítačů

Transkript:

Architektury paralelních počítačů II. Sekvenční konzistence paměti Implementace synchronizačních událostí Ing. Miloš Bečvář s použitím slajdů Prof. Ing. Pavla Tvrdíka, CSc.

Osnova přednášky Opakování definice paměťové koherence Model sekvenční konzistence paměti Typy synchronizačních událostí Způsoby implementace zámků Atomické instrukce RMW Instrukční pár LL & SC Implementace bariéry

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í.

Stačí koherence k rozumnému chování sdilené paměti? Proměnná f indikuje, že proměnná x byla změněna. Očekáváme, že print(x) vytiskne 1. Paměťová koherence ovšem nijak nespecifikuje v jakém pořadí jednotlivé procesy P1 a P2 spouštějí své paměťové operace (read, write) a nijak nespecifikuje v jakém pořadí uvidí P2 zápisy do x a f. Koherence pouze zajistí, že P2 se nakonec dozví nové hodnoty x a f, ale nijak nespecifikuje v jakém pořadí tyto nové hodnoty obdrží. Proto ani na počítači s koherentním paměťovým systémem není vyloučeno, že P2 vytiskne starou hodnotu x (tj. 0).

Co by se mohlo stát i při koherentní paměti? P1 na procesoru 1 P2 na procesoru 2 WRITE (X, 1) L1: READ R1, (F) WRITE (F,1) BEQZ R1, L1 READ R2, (X) print R2 Na procesoru s prováděním instrukcí mimo programové pořadí může být provedeno READ R2, (X) dříve než skončí READ R1, (F) a skok je vyhodnocen: 1. P2 spustí READ R1, (F) a nenajde F v cache, vydá požadavek na čtení z paměti, ale nejprve musí získat sběrnici. 2. P2 využije času a spustí spekulativně READ R2, (X) za předpovězeným skokem BEQZ. Hodnota X=0 je nalezena v cache a je předána do R2. 3. Procesor P1 získá sběrnici a provede BusWr(X,1), hodnota X je v cache u procesoru 1 zneplatněna v souladu s koherenčním protokolem. 4. Procesor P1 získá sběrnici a provede BusWr(F,1). 5. Procesor P2 získá sběrnici a provede BusRd(F). Do R1 získá novou hodnotu F=1 což potvrdí, že předpověď BEQZ byla správná a spekulace úspěšná. 6. P2 vytiskne starou hodnotu X uloženou do R2.

Model sekvenční konzistence

Implementace Sekvenční Konzistence (SC) Konzistence oproti koherenci specifikuje v jakém pořadí jednotlivé procesy spouštějí své paměťové operace (či v jak se toto pořadí jeví ostatním procesorům) Dále specifikuje, že všechny paměťové operace lze sestavit do myšleného sekvenčního pořadí. Koherence požaduje možnost sestavení myšleného sekvenčního pořadí pouze vůči jednotlivým paměťovým místům (nikoli mezi přístupy do různých paměťových míst). Je možné implementovat cache koherenční počítač s jiným než sekvenčním konzistenčním modelem.

Postačující podmínky pro zajištění SC

SC vs optimalizace výkonu Zajištění SC není jen problém HW neboť programátor očekává zachování programového po adí popsaného ve zdrojovém programu ve vyšším programovacím jazyce. Prakticky všechny vyšší p.j. mají definován slabší model konzistence a programátor musí striktnější podmínky na paměťové operace vynutit např. použitím deklarace proměnné jako volatile. Různé procesory implementují buď sekvenční konzistenci nebo některý ze slabších konzistenčních modelů.

Sběrnicově založené SMP a koherence a konzistence Sběrnice zajišťuje serializaci paměťových operací, propagaci výsledků a za určitých podmínek i atomicitu paměťových operací (záleží na protokolu sb.). Myšlené pořadí operací požadované v definicích koherence a konzistence je pořadím těchto operací na sběrnici.

WTWNA a problém koherence a konzistence Tento důkaz ještě obsahuje skrytý předpoklad, že Read a Write jsou jednotlivými procesory spouštěny v programovém pořadí a procesor čeká na dokončení Write!

Dijkstra, 1965

Zámek pomocí Test & Set simulace na MESI Lock (a L ) UnLock (a L ) P3 unlocked a L P 1 P 2 P 3 P 4 a L :? I a L :? I a L : 0 M a L :? I P3: BusUpgrd a L : 1

Zámek pomocí Test & Set simulace na MESI Lock (a L ) UnLock (a L ) P1 is trying to lock a L P 1 P 2 P 3 P 4 a L : 0 S a L :? I a L : 0 S a L :? I P1: BusRd a L : 0

Zámek pomocí Test & Set simulace na MESI Lock (a L ) UnLock (a L ) P1 is trying to lock a L,, it succeeds P 1 P 2 P 3 P 4 a L : 1 M a L :? I a L : 0 I a L :? I P1: BusUpgrd a L : 0

Zámek pomocí Test & Set simulace na MESI Lock (a L ) UnLock (a L ) P2 is trying to lock a L, P 1 P 2 P 3 P 4 a L : 1 S a L : 1 S a L : 0 I a L :? I P2: BusRd a L : 1

Zámek pomocí Test & Set simulace na MESI Lock (a L ) UnLock (a L ) P2 is trying to lock a L, unsuccessfully P 1 P 2 P 3 P 4 a L : 1 I a L : 1 M a L : 0 I a L :? I P2: BusUpgrd a L : 1

Zámek pomocí Test & Set simulace na MESI Lock (a L ) UnLock (a L ) P4 is trying to lock a L, P 1 P 2 P 3 P 4 a L : 1 I a L : 1 S a L : 0 I a L : 1 S P4: BusRd a L : 1

Zámek pomocí Test & Set simulace na MESI Lock (a L ) UnLock (a L ) P4 is trying to lock a L, P 1 P 2 P 3 P 4 a L : 1 I a L : 1 I a L : 0 I a L : 1 M P4: BusUpgrd a L : 1

Zámek pomocí LL & SC simulace na MESI Lock (a L ) UnLock (a L ) P3 unlocked a L P 1 P 2 P 3 P 4 a L :? I a L :? I a L : 0 M a L :? I P3: BusUpgrd a L : 1

Zámek pomocí LL & SC simulace na MESI Lock (a L ) UnLock (a L ) P1 executes LL P 1 P 2 P 3 P 4 a L : 0 S a L :? I a L : 0 S a L :? I P1: BusRd a L : 0

Zámek pomocí LL & SC simulace na MESI Lock (a L ) UnLock (a L ) P2 executes LL P 1 P 2 P 3 P 4 a L : 0 S a L : 0 S a L : 0 S a L :? I P2: BusRd a L : 0

Zámek pomocí LL & SC simulace na MESI Lock (a L ) UnLock (a L ) P1 executes SC (P2 will cancel attempt to execute SC) P 1 P 2 P 3 P 4 a L : 1 M a L : 0 I a L : 0 I a L :? I P1: BusUpgrd a L : 0

Zámek pomocí LL & SC simulace na MESI Lock (a L ) UnLock (a L ) P4 executes LL P 1 P 2 P 3 P 4 a L : 1 S a L : 0 I a L : 0 I a L : 1 S P4: BusRd a L : 1

Zámek pomocí LL & SC simulace na MESI Lock (a L ) UnLock (a L ) P2 executes LL, now P2 and P4 loops internally till the a L is unlocked P 1 P 2 P 3 P 4 a L : 1 S a L : 1 S a L : 0 I a L : 1 S P2: BusRd a L : 1

Závěr Pro synchronizaci v paralelních počítačích se sdílenou pamětí je vhodné definovat sekven n konzistentní pam ový systém. Synchronizační operace jsou vzájemné vylou ení, dvoubodová synchronizace a synchroniza ní bariéra. Základem implementace synchronizačních operací jsou atomické RMW primitivy. V ISA procesorů se vyskytují RMW instrukce T&S, SWAP, F&I, C&S Novější procesory podporují tvorbu RMW primitiv pomocí instrukcí LL a SC, které umožňují efektivní implementaci synchronizačních operací v systémech se skrytými paměťmi