Teoretická informatika Tomáš Foltýnek Paralelní programování.

Slides:



Advertisements
Podobné prezentace
Mikroprocesory Intel Obr. 1.
Advertisements

SOFTWARE dálkové studium PODNIKÁNÍ 2. listopad 2006.
Souborové systémy.
Úvod Klasifikace disciplín operačního výzkumu
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
ALGO – Algoritmizace 1. cvičení
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Otázky k absolutoriu HW 1 - 5
Procesory Filip Skulník.
Algoritmy I Cvičení č. 3.
Paralelní programování
Úvod. Základní úrovně: hardwarová (procesory, jádra) programová (procesy, vlákna) algoritmická (uf... ) Motivace: zvýšení výkonu redundance jiné cíle,
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
Principy překladačů Architektury procesorů Jakub Yaghob.
Jazyk vývojových diagramů
Informatika I 7.a 8. hodina 4. týden.
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
LOGICKÉ ŘÍZENÍ GEORGE BOOLE
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_02A13 Autor Ing. Jiří Kalousek Období vytvoření duben 2014.
Modely konzistentnosti Ladislav Kotal PDS 2008Ladislav Kotal2 Konzistentnost Konzistentní = soudržný, neporušený, pevný Konzistenční model = dohoda.
Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
Jazyk vývojových diagramů
Databázové systémy Architektury DBS.
Hardware Vypracoval: Patrik Bejček.
Algebra II..
13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
Synchronizace Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
11. přednáška politika přidělování místa, trashing -algoritmy určení oběti -souběžnost procesů -kritická sekce (co je to, požadavky, možnosti.
Zablokování (deadlock, smrtelné objetí, uváznutí)
Distribuovaná sdílená paměť Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
A4B33OSS (J. Lažanský) verze: Podzim 2010 Meziprocesní komunikace a synchronizace procesů 1 Obsah Téma 5 – Meziprocesní komunikace a synchronizace procesů.
A4B33OSS (J. Lažanský) verze: Podzim 2013 Meziprocesní komunikace a synchronizace procesů 1 Obsah Téma 5 – Synchronizace procesů a problém uváznutí 1.Problém.
13AMP 4. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Problém sdílených zdrojů Problém sdílených zdrojů Co je to kritická sekce Co.
Distribuované algoritmy - přehled Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
Architektura počítače
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Počítačové sítě Terezie Gřundělová Historie Vznik a vývoj je spjat s rozvojem počítačů a výpočetní techniky První rozmach v padesátých letech.
1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.
A3B33OSD (J. Lažanský) verze: Jaro 2013 Synchronizace procesů a problém uváznutí 1 Obsah Téma 5 – Synchronizace procesů a problém uváznutí 1.Problém soupeření,
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
Pokročilé architektury počítačů (PAP_05.ppt)
PB 169 Počítačové sítě a operační systémy1 Synchronizace procesů Uváznutí PB 169 Počítačové sítě a operační systémy.
1/35 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Synchronizace procesů 08.
SVAZEK NEDEDIKOVANÝCH PRACOVNÍCH STANIC NA BÁZI OS LINUX DANIEL LANGR DIPLOMOVÁ PRÁCE 2004.
Multiprocesorové systémy. Multiprocesorové systémy vznikly z důvodu zvýšení výkonnosti počítačů, protože jednoprocesorové systémy svým výkonem již přestaly.
Prioritní osa: 1 − Počáteční vzdělávání Oblast podpory: 1.4 − Zlepšení podmínek pro vzdělávání na základních školách Registrační číslo projektu: CZ.1.07/1.4.00/
Paralelizace algoritmu. Single Instruction, Single Data stream (SISD) „tupé“ procesory Single Instruction, Multiple Data streams (SIMD) maticové procesory.
Orbis pictus 21. století Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky Blokové schéma počítače.
Operační systémy LS 2014/ přednáška 20. dubna 2015.
Operační systémy 10. Souběh a uváznutí
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
Vypracoval / Roman Málek
Zvídavé otázky 1. Prevence a detekce uváznutí
Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Procesor Procesor (CPU – Central Processing Unit) je ústřední výkonnou jednotkou počítače, která čte z paměti instrukce a na jejich základě vykonává program.
Výukový materiál zpracován v rámci projektu
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
1. ročník oboru Mechanik opravář motorových vozidel
Název školy: ZŠ Bor, okres Tachov, příspěvková organizace
Operační systémy 9. Spolupráce mezi procesy
1. ročník oboru Mechanik opravář motorových vozidel
Přednášky z distribuovaných systémů
Přednášky z Distribuovaných systémů
Transkript prezentace:

Teoretická informatika Tomáš Foltýnek Paralelní programování

Teoretická informatika Opakování Co je to síť? Co je to tok? Co je to velikost toku? Co je to řez? Co je to velikost řezu? Jaký je vztah mezi velikostí toku a velikostí řezu? Jak hledat maximální tok? Co je to párování v grafu? Jak hledat největší párování v grafu? strana 2

Teoretická informatika Motivace Moorův zákon: „Počet tranzistorů, které lze umístit do integrovaného obvodu při zachování ceny, se zdvojnásobuje přibližně každé dva roky“ –1965 Gordon Moore, zakladatel Intelu I při neustálém zvyšování výkonu se vždy najdou aplikace, pro které není výkon dostatečný Fyzikální limity miniaturizace Řešení: paralelizace strana 3

Teoretická informatika Literatura Herlihy, M; Shavit, N.: The Art of Multiprocessor Programming Grama, A.; Gupta, A.; Kumar, V.: Introduction to Parallel Computing Foster, I.: Designing and Building Parallel Programs Downey, A.B.: The Little Book of Semaphores. 08semaphores.pdf 08semaphores.pdf cy strana 4

Teoretická informatika Nejrychlejší počítač světa Cray XT5-HE Opteron Six Core 2.6 GHz –National Center for Computational Sciences, Oak Ridge, Tennessee, USA – procesorových jader – GFLOPS strana 5

Teoretická informatika Základní myšlenka paralelismu Sdružíme několik počítačů (procesorů, jader) a rozdělíme výpočetní zátěž mezi ně Paralelní program je charakterizován dvěma a více souběžně prováděnými a kooperujícími výpočetními aktivitami –proces (task), vlákno (thread) Kooperace je založena na komunikaci –předávání zpráv –sdílené proměnné Komunikace: nutné zlo zdržující výpočet –efektivní řešení komunikace je klíčem k úspěchu strana 6

Teoretická informatika Příklad: skalární součin Paralelizace výpočtu skalárního součinu n-rozměrných vektorů na p procesorech Řídicí proces rozdělí vektory na p bloků –každý s přibližně n/p prvky Na každém z p procesorů proběhne dílčí výpočet skalárního součinu Řídicí proces všechny dílčí výsledky sečte strana 7

Teoretická informatika Flynnova klasifikace paralelismu Single/Multiple instruction Single/Multiple data MIMD = Multiple Instruction Multiple Data –nejobecnější architektura –více instrukčních proudů –každý pracuje nad jinými daty SIMD = Single Instruction Multiple Data –tatáž instrukční sada je provedena na rozdělených datech –viz příklad výpočtu skalárního součinu SISD = Single Instruction Single Data –sekvenční zpracování = bez paralelismu MISD = Multiple Instruction Single Data –prakticky nepoužitelné strana 8

Teoretická informatika Uspořádání paralelních systémů Uspořádání paměti –Sdílená paměť všechny procesy přistupují ke stejnému paměťovému prostoru –Distribuovaná paměť každý proces má svoji paměť, pro ostatní nedostupnou Komunikační topologie –Klika – úplný graf –Sběrnice – sdílené médium –Kruh –Strom –Hvězdice hvězdice hvězdic –Hyperkrychle strana 9

Teoretická informatika Metodika tvorby paralelních aplikací Dekompozice –rozdělení úlohy na podúlohy –datová dekompozice (SIMD) –funkční dekompozice (MIMD) Komunikace –analýza komunikace mezi podúlohami –komunikační schéma (orientovaný acyklický graf/síť) Aglomerace –slučování úloh do větších celků –granularita (zrnitost) = míra jemnosti podúloh –stupeň souběžnosti = maximální počet paralelně běžících úloh Mapování –přidělování úloh procesorům –algoritmy vyvažování zátěže strana 10

Teoretická informatika Varianty přístupu k paměti Souběžné čtení –dva nebo více procesů čte z jednoho místa paměti Výlučné čtení –více procesů čte zároveň z více míst paměti, z každého místa čte jen jeden proces Souběžný (soupeřící) zápis –dva nebo více procesů zapisuje do stejného paměťového místa Výlučný zápis –více procesů zapisuje zároveň do více paměťových míst, do každého místa zapisuje jen jeden proces strana 11

Teoretická informatika Problém vzájemného vyloučení Proces manipuluje se sdílenými daty –Nachází se vůči těmto datům v kritické sekci –Provádění kritických sekcí musí být vzájemně výlučné Synchronizační primitiva –Bariéra –Semafor –Monitor Viz znalosti z předmětu „Operační systémy“ strana 12

Teoretická informatika Požadavky na řešení kritické sekce Bezpečnost – vzájemné vyloučení –v kritické sekci sdružené s daným prostředkem se smí v 1 okamžiku nacházet nejvýše 1 proces Živost – trvalost postupu –vybrat procesu na vstup do KS v konečném čase –požadavky každého procesu uspokojit v konečném čase –nesmí dojít k uváznutí a ke stárnutí Předpoklady –o vzájemné rychlosti procesů nic nevíme –o počtu procesů nic nevíme –proces bude v KS jen konečnou dobu –procesy lze přerušit kdykoliv mimo atomické instrukce strana 13

Teoretická informatika Bariéra Všechny procesy jsou zablokovány do chvíle, než dosáhne bariéry poslední –Sraz na určitém místě Paměťová bariéra –instrukce mfence –efekt instrukcí provedených před bariérou bude globálně viditelný pro všechny instrukce za bariérou strana 14

Teoretická informatika Instrukce „TEST-AND-SET“ Algoritmus bool testset(int& i){ if (i==0) { i=1; return true } else { return false } Použití while(!testset(b)); CRITICAL_SECTION; b=0; Je-li instrukce testset atomická, může být v KS jen jeden proces –bezpečné Jestliže proces vystoupí z KS, volba dalšího procesu je náhodná –procesy mohou stárnout Jiná varianta implementace bool TestAndSet(bool lock) { bool initial = lock; lock = 1; return initial; } strana 15

Teoretická informatika Instrukce „COMPARE-AND-SWAP“ Algoritmus bool CAS(int* addr, int exp, int val) { if(*addr == exp) { *addr = val; return true; } return false; } Použití do { oldval = shared_var; newval = N Ě CO; while (CAS(shared_var, oldval, newval)); Použití pro změnu hodnoty sdílených dat –přečtu stávající hodnotu –připravím novou hodnotu –aplikuji funkci CAS Návratová hodnota –TRUE = objekt nebyl v mezičase změněn, nová hodnota je platná a je uložená –FALSE = objekt byl v mezičase modifikován, nová hodnota je neplatná, postup je třeba opakovat strana 16

Teoretická informatika Nevýhoda CAS: ABA problém Proces A načte hodnotu x Proces B hodnotu změní Proces C hodnotu změní opět na x Proces A aplikuje CAS –ta uspěje, proces nepoznal, že se hodnota měnila Nebezpečí vzniku nekonzistentních dat strana 17

Teoretická informatika Semafor I. Synchronizační prostředek poskytovaný OS Pasivní čekání Semafor je objekt –celočíselná proměnná –fronta čekajících procesů –operace inicializace –2 atomické a vzájemně výlučné operace wait signal strana 18

Teoretická informatika Semafor II. S.init –S.count=1 //nezáporná hodnota S.wait –S.count--; –if (S.count<0) zablokuj proces vlož jej do fronty čekajících procesů S.signal –S.count++; –if(S.count<=0) vyjmi proces z fronty čekajících procesů odblokuj jej Použití semaforu pro vzájemné vyloučení –wait(S); –CRITICAL_SECTION; –signal(S); Inicializační hodnota count určuje počet proecsů, které mohou být v kritické sekci Atomicita a vzájemná výlučnost wait a signal je zodpovědnost OS Použití pro synchronizaci –P0::=… signal(s); … –P1::=… wait(s); … strana 19

Teoretická informatika Problém večeřících filozofů Klasický synchronizační problém Přidělování prostředků bez uváznutí a stárnutí Máme 5 filozofů, kteří pouze jí a myslí Každý filozof umí jíst jen 2 vidličkami Máme k dispozici 5 vidliček Jak řešit problém? Zobecnění pro n filozofů, m vidliček –a k-ruké filozofy strana 20

Teoretická informatika Úloha producent / konzument Producent produkuje informaci, konzument informaci zpracovává –překladač generující moduly zpracovávané sestavovacím programem Buffer pro ukládání vyprodukovaných nezpracovaných hodnot –neomezené kapacity –délky k Podmínky –k bufferu smí přistupovat jen jediný proces –nelze konzumovat, je-li buffer prázdný –nelze produkovat, je-li buffer plný strana 21

Teoretická informatika Problém tří kuřáků Aby mohla být cigareta vykouřena, vyžaduje tři složky –tabák –papír –zápalky Kolem stolu jsou tři kuřáci –každý má neomezené zásoby právě jedné složky Rozhodčí nekuřák –nedeterministicky vybere 2 kuřáky, ti položí 1 položku ze svých zásob na stůl –upozorní třetího kuřáka; ten odebere věci ze stolu, ubalí cigaretu a bude chvíli kouřit Kuřáci suroviny neshromažďují –nejprve dokouřit, teprve potom balit další cigaretu –ale během kouření mohou pokládat své věci na stůl strana 22

Teoretická informatika Monitor I. Konstrukce na úrovni programovacího jazyka Funkčně ekvivalentní semaforu, implementovatelný semaforem Monitor je objekt –data, k nimž řídíme přístup –funkce manipulující s těmito daty Podmínky –v monitoru se může nacházet jen jeden proces implicitní vstupní semafor –data monitoru jsou přístupná jen z jeho funkcí –funkce monitoru nepoužívají externí data –po skončení funkce jsou data v konzistentním stavu strana 23

Teoretická informatika Monitor II. Někdy je třeba čekat na událost způsobenou jiným procesem –tj. na hodnotu podmínkové proměnné S každou podmínkovou proměnnou je svázán semafor (a fronta čekajících procesů) –wait pouští do monitoru další proces; aktuální proces je odstaven do fronty –signal (notify) budí čekající procesy až poté, co proces volající signal opustí monitor strana 24

Teoretická informatika Komunikace Dvoustranná komunikace –komunikace z bodu do bodu –synchronní odesílání ukončeno ve chvíli, kdy příjemce obdrží zprávu odesilatel má jistotu, že příjemce zprávu obdržel –asynchronní odesílání ukončeno v okamžiku, kdy je zpráva odeslána odesilatel nemá informaci o doručení zprávy Kolektivní komunikace –bariéra – synchronizace procesů –vysílání (broadcast) – 1 odesilatel, 1 zpráva, více příjemců –rozdělení (scatter) – 1 odesilatel, více zpráv, více příjemců –sesbírání (gather) – více odesilatelů, více zpráv, 1 příjemce –redukce (reduce) – sesbírání dat, vytvoření jediné hodnoty a její rozeslání všem strana 25

Teoretická informatika Zasílání zpráv MPI = Message Passing Interface –Protokol relační vrstvy –Množina funkcí poskytovaná v různých jazycích Nejdůležitější funkce –MPI_Send, MPI_Recv – blokující odeslání a příjem –MPI_Isend, MPI_Irecv – neblokující odeslání a příjem –MPI_Bcast, MPI_Scatter, MPI_Gather, MPI_Reduce –MPI_Init, MPI_Finalize, MPI_Comm_size, MPI_Comm_rank –MPI_Barrier strana 26