ricipy počítačů I Taxoomie, orgaizace s vysokým výkoem símek ricipy počítačů Část IX Taxoomie, orgaizace s vysokým výkoem símek 2 Flyova taxoomie SISD - Sigle Istructio Sigle Data SIMD - Sigle Istructio Multiple Data MISD - Multiple Istructio Sigle Data MIMD - Multiple Istructio Multiple Data 2 símek 3 Stroje SISD M MS diagram stroje SISD klasické stroje vo Neumaova typu problém se zařazeím vektorových strojů dyamický pohled - stroje SISD statický pohled - stroje SIMD 3
símek 4 M K Stroje SIMD Md Md Md MS diagram stroje SIMD Lokálí paměť rocesorový elemet (aktiví ebo ečiý) Řadič - zodpovídá za vyzdvižeí, dekódováí a přiděleí istrukce vektorové zpracováí - distribuce elemetů vektoru do lokálích pamětí 4 símek 5 MS diagram stroje MISD Stroje MISD Mi Mi Mi Md velmi málo strojů systolické pole proudová lika - evyzvedává istrukce a operady z lokálí paměti 5 símek 6 MS diagram stroje MIMD Stroje MIMD M M M M široká škála zařízeí -multiprocesorové stroje většiou použity pro paralelizaci úloh počítačové sítě 6
símek 7 Další taxoomie ejvětším problémem je začleěí vektorových procesorů pokusy o velmi složité taxoomie selhaly rozšířeí Flyovy taxoomie o stroj SMD - Sigle rogram Multiple Data - sychoizovaý stroj MIMD, kde všechy procesory pracují pod řízeím stejého programu. 7 símek 8 očítačové systémy s vysokým výkoem Implemetace Architektura Orgaizace text text text text Techologické postupy 8 símek 9 a úrovi úlohy a úrovi programu ezávislost sekcí ezávislost iterací a úrovi istrukcí a úrovi aritmetiky aralelizace Kocepce paralelího zpracováí závisí a graularitě úlohy 9
símek 0 Orgaizace s vysokým výkoem multiprocesory MIMD se sdíleou pamětí multiprocesorové vektorové stroje systémy MIMD s distribuovaými pamětmi stroje SIMD distribuovaé paměti 0 símek Stroj MIMD se sdíleou pamětí Stroj c.mmp - ázev odvoze od MS diagramu M M M M M M Základí elemet Skupia původí verze s křížovým přepíačem, později strom propojey počítače D- lieárí adresový prostor postupé vyřizováí žádosti o přístup do paměti (NUMA) símek 2 M c Mc Mc KSR-- sdíleá virtuálí paměť Druhá úroveň hierarchie, spojuje max. 34 kruhů prví hierarchie Mc rví úroveň hierarchie, spojuje max. 32 procesorů, rychlost GB/s Mc Mc Vyrovávací paměť 32 MB 2
símek 3 Multiprocesorové vektorové stroje většiou obsahují malé možství výkoých vektorových procesorů apř. CRAY C - 90 max. 6 procesorů vyladěí paměťových modulů šířce pásma procesoru více paměťových modulů propojeých sítí (víceúrovňové křížové přepíače) k procesorům výjimka Fujitsu V500, 222 procesorů 3 símek 4 MIMD s distribuovaými pamětmi prví stroje s procesory Itel 8086 v síti hyperkrychle 6 až 28 procesorů (Cosmic Cube) růzé strategie výměy zpráv (jedoduché protokoly, Worm Hole ) a bázi Cosmic Cube postavey komerčí počítače s procesory RISC i860 apod. 4 símek 5 CM-5 (Thikig Machies) () Topologie stroje používá fat-tree rocesor SARC, 32 MB paměti, vektorový koprocesor 4 2 20 Mbit/s 5
símek 6 CM-5 (Thikig Machies) (2) Odděleá datová a řídící síť v M v M v M v M v M Kio Ket Ket Datová Řídící síť síť a) Datový uzel stroje CM-5 Datová Řídící síť síť b) Řídící uzel stroje CM-5 6 símek 7 Adresy odmíky aměť 4 kb SIMD - stroj CM-2 Jedobitový procesor stroje SIMD - CM-2 4 096 procesorů ve dvaáctirozměré krychli říze počítačem VAX Vstup A Vstup A Vstup B aměť podmíek ALU Řízeí ALU Výrazé zrychleí pro prohledáváí databází, řazeí zázamů 7 símek 8 SIMD - maticové stroje () Řídící počítač Datová sběrice Řadič Řídící sběrice 0 2 3 M0 M M2 M3 M ropojovací síť Maticový stroj s lokálími pamětmi 8
símek 9 SIMD - maticové stroje (2) Řídící počítač Datová sběrice Řadič Řízeí propojovacího pole Řídící sběrice 0 2 3 ropojovací síť k M0 M M2 M3 M Maticový stroj se sdíleou pamětí 9 símek 20 oužití maticových strojů matematické modely založeé a práci s maticemi (operace typu ásobeí, rozklad, iverze a výpočet vlastí hodoty) lieárí a celočíselé programováí modelováí v meteorologii sigálové procesory (filtrace, FFT) zpracováí map v geodézii a kartografii zpracováí obrazů a aalýza scéy v reálém čase 20 símek 2 Distribuovaé paměti () uiversálí procesor spojeý s lokálí pamětí (multipočítačové systémy) výko je urče výkoem komuikačího systému programovací techiky (sychroizace procesů) 2
símek 22 Distribuovaé paměti (2) M K0 K M K0 K E0 E M K0 K M K0 K E2 E3 22 símek 23 orováí SIMD a MIMD SIMD stejý program pro celý systém cetralizovaé řízeí sychroizace je vlastí již ávrhu speciálí použití MIMD každý procesor vlastí program distribuovaé řízeí obtížá sychroizace obecější ávrh, větší segmet aplikací 23 símek 24 aralelí systémy podmíky omezující paralelí výpočet závislost toku dat - istrukce s produkuje vstupí data pro istrukci s 2 závislost výstupu - istrukce s a istrukce s 2 zapisují do téže proměé závislost vstupu - istrukce s přepisuje vstupí data istrukce s 2 vstupě/výstupí závislost - istrukce s a istrukce s 2 zapisují do téhož souboru 24
símek 25 Latetí závislosti závislost idexů (apř. idexovaé idexy) idexy, které eobsahují řídící proměou cyklu proměé, které se vyskytují pokaždé s jiými idexy elieárí idexy 25 símek 26 Graularita úlohy programu podprogramu cyklu strojové istrukce mikroistrukce 26 símek 27 aralelismus řízeí paralelí zpracováí procedur ebo příkazů doplěých o paralelí kostrukty paralelí kostrukty založeé a sychroizačích primitivech model stroje - propojeí ěkolika běžých procesorů, kde každý z ich vykoává istrukce podle stavu svého vlastího programového čítače 27
símek 28 iput d,e,f; c[0]0; for(i;i<4;i++) { a[i]d[i]+e[i]; b[i]a[i]*f[i]; c[i]b[i]+c[i]; } aralelismus datových toků c0 d e f d2 e2 f2 d3 e3 f3 d4 e4 f4 + * + a b + * a2 + * a3 b2 b3 b4 c c2 c3 c4 + + + Datové položky poukazují a exekutibilí kód, který se zače vykoávat teprve tehdy, až všecha potřebá data budou k dispozici - vykoáváí fragmetů kódu odspoda + * a4 28 símek 29 Redukčí paralelismus a(b+)*c-d/e b + - * / c d e saha po odstraěí ízké efektivosti stroje řízeého tokem dat odstartováí fragmetu kódu vyvolá potřeba výsledku zpracováí vede ke stromovému rozvoji operací 29 símek 30 arametry paralelího systému () Nechť existuje program, který vykoává t paralelích istrukcí během dostatečě malého časového itervalu t. arametr t azýváme profilem ebo paralelím profilem programu. Celkový počet operací E v čase t t -t 0 Idealizovaý výpočetí výko jedoho procesoru t E µ t dt t0 30
símek 3 arametry paralelího systému (2) růměrý paralelizmus úlohy E T µ µ φ t t 0 t t0 t dt Celkový čas běhu úlohy sekvečí běh plě paralelí běh Ei T i. µ t 3 símek 32 arametry paralelího systému (3) Asymptotické zrychleí S T () T ( ) i E Ei i 32 símek 33 W k růměrý výko Aritmetický průměr Geometrický průměr a W i k i Harmoický průměr W h k i k W i W k k g W i i latí Cauchyho věta W a > W g > W h 33
símek 34 růměré harmoické zrychleí ro sekvečí běh programu T W ro paralelí běh programu Ti W i i růměré harmoické zrychleí výpočtu a stroji s i procesory S wi W i i 34 símek 35 Okrajové stavy systému. -procesorový stroj může používat libovolý stupeň paralelizace ke zpracováí / úlohy 2. i procesorů zpracovává paralelě části úlohy, které jsou úměré i 3. i procesorů zpracovává paralelě části úlohy, které jsou úměré převráceé hodotě i 4. úloha má dvě části, jeda se zpracovává pouze sekvečě, druhá pouze paralelě a procesorech 35 símek 36 řípad. oužité váhy jsou stejé w w2 K růměré harmoické zrychleí Eulerova S Ψ( ) + C kostata i i Gamma fukce Některé hodoty S 2,33 S 32 7,88 S 024 36,36 36
símek 37 řípad 2. oužité váhy odpovídají předpisu w, q 2 w2, q 3 w3, L, w, q q růměré harmoické zrychleí S i q q + i 2 i q i ( + ) i 2 Asymptotické zrychleí 50% 37 símek 38 řípad 3. oužité váhy odpovídají předpisu 2 w, w2, w3, L, w q q q růměré harmoické zrychleí S i q ( + ) + i 2 2 + Ψ( ) ( + ) + C( + ) i q Některé typické hodoty S 2,2 S 32 5,8 S 024 78,64 38 símek 39 řípad 4 - Amdahlův záko oužité váhy odpovídají předpisu w s, w2 w3 L w 0, w s růměré harmoické zrychleí S s s + s + s s( ) + V limitím případě S lim s 39
símek 40 Zrychleí výpočtu 40 20 00 80 60 40 20 0 Amdahlovův záko (2) 28 procesorů 64 procesorů 32 procesorů 6 procesorů 8 procesorů 2 procesory 0 0, 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 Stupeň paralelosti úlohy 40 símek 4 Účiost paralelího zpracováí O počet operací a -procesorovém systému T poměrá doba zpracováí programu v - procesorovém systému Zrychleí T S ; S T Účiost η S T T η 4 símek 42 Redudace a využití prostředků Kvalita paralelizace Redudace Koeficiet využití prostředků S η R O U R η T T O 2 Q 2 R T O ; Q < O S 42
símek 43 Účiost paralelích algoritmů graularita profil paralelího zpracováí způsob komuikace jedotlivých částí stroje zvoleý způsob sychroizace procesů společé prvky ávrhu požadavky a paměť a její orgaizace 43 símek 44 Účiost paralelizace Účiost paralelizace w( s) E w( s) + h( s, ) Fukce rovoměré účiosti E w( s) h( s,,) E 44