Paralelní systémy Paralelním systémem rozumíme takový systém, který paralelně zpracovává více samostatných úloh nebo zpracování určité úlohy automaticky rozdělí do menších částí a paralelně je zpracovává. Při rozlišení jednotlivých případů paralelismu hovoříme o granularitě paralelního zpracování hrubozrnná granularita – paralelismus na úrovni procesů, systémy obsahující více než jeden procesor jemnozrnná granularita – paralelismus na úrovni příkazů Ve výpočetních systémech je možné setkat se s jemnozrnnou granularitou paralelismu: při proudovém zpracování instrukcí u superskalární (hyperskalární) architektury – více jednotek ALU u I/O kanálů pracujících nezávisle na procesoru při přenosu dat – přímý přístup do paměti (DMA) u vektorových počítačů
Rozdělení paralelních systémů Výpočetní systém je zařízení, do kterého vstupuje jeden nebo více toků dat a jeden nebo více toků instrukcí, které zpracování dat řídí. (M.J.Flynn, 1972) Výpočetní systém lze pak charakterizovat vlastnostmi: SI (Single Instruction) – zpracování jen jednoho toku instrukcí MI (Multiple Instruction) – zpracování více toků instrukcí SD (Single Data) – zpracování jen jednoho toku dat MD (Multiple Data) – zpracování více toků dat Kategorie výpočetních systémů SISD – jeden tok instrukcí + jeden tok dat klasický Von Neumannův počítač SIMD – jeden tok instrukcí + více toků dat jedním programem je zpracováváno více různých souborů dat MISD – více toků instrukcí + jeden tok dat více procesorů s různými programy zpracovávající společná data jen pro velmi speciální aplikace MIMD – více toků instrukcí + více toků dat převážná většina paralelních systémů
-1-
Paralelní systémy
SIMD
Vektorové počítače
MIMD
Maticové počítače
Multiprocesory (Společná paměť)
Multipočítače (Distribuovaná paměť)
Paralelní systémy SIMD Jeden proud instrukcí (program) řídí zpracování různých souborů dat ve více nezávislých paralelních jednotkách Typickým představitelem je vektorový počítač IBM 3090
Hlavní paměť Cache
Dekodér instrukcí Skalární procesor
Vektorový procesor
Skalární registry
Vektorové registry
-2-
Procesory vektorového počítače Skalární procesor – zpracovává standardní sadu strojových instrukcí Vektorový procesor – zpracovává instrukce pro práci s vektory, jejichž složky jsou čísla v pohyblivé řádové čárce se skupinou paralelně pracujících ALU (FPU) s proudovou ALU (FPU) Vektorovým počítačům se také říká numerické superpočítače – používají se pro složité výpočty Vektorový procesor s paralelními jednotkami ALU Paralelní ALU jednotky zpracovávají stejnolehlé složky vstupních registrů A a B a výsledek ukládají do vektorového registru C. Vektorový registr A
Vektorový registr B
Paralelní jednotky ALU Vektorový registr C
Vektorový procesor s proudovou jednotkou ALU Jednotka ALU zpracovává stejnolehlé složky vstupních registrů A a B proudově a výsledek ukládá do vektorového registru C.
Vektorový registr A
Vektorový registr B
Proudová jednotka ALU Vektorový registr C
-3-
Maticové procesory Maticový procesor - každá dílčí jednotka zpracovává jiný prvek matice, všechny jednotky synchronně provádějí tutéž operaci zpracovávající jednotka – řadič několik datových jednotek - PE (Processor Element) každá datová jednotka má lokální paměť - MEM
Princip maticového procesoru: řadič je odpovědný za načtení a interpretaci instrukce vyšle instrukci všem datovým jednotkám, které vykonají stejnou operaci skalární a řídící instrukce se vykonávají přímo v řadiči řadič musí zajistit rozmístění potřebných operandů do lokálních pamětí datových jednotek datové jednotky mohou mezi sebou komunikovat (posílat si data) prostřednictvím meziprocesorové komunikační sítě
Další architektury SIMD Asociativní procesory maticové procesory používající v některých případech místo adresového výběru dat z paměti asociativní výběr, tedy podle obsahu Systolické pole pevně propojená síť funkčních jednotek určená pro řešení jedné konkrétní úlohy propojení je obvodová realizace algoritmu výpočtu, takže systolickou síť není třeba řídit programem
Paralelní systémy MISD Systémy MISD - kategorie počítačů, která není v praxi příliš běžná Lze sem zařadit některé speciální systémy: Systolické pole Neuronové sítě pokoušejí se napodobit funkci biologických neuronových síti – mozku základním prvkem – matematický model neuronu
-4-
Organizace paměti Výkon počítače je kromě rychlosti a počtu procesorů ovlivněn také rychlostí a velikostí paměti U rychlosti paměti rozlišujeme: vybavovací doba (access time) doba, za niž se realizuje jeden zápis nebo čtení z paměti současné paměti mají vybavovací dobu do 70 ns cyklus paměti (cycle time) délka intervalu mezi dvěma po sobě jdoucími požadavky na paměť během této periody žádné jiné zařízení nemůže použít paměť v současné době mají paměti cyklus do 200 ns
Paměť s prokládanými cykly Paměť s prokládanými cykly (interleaved memory) se používá ve výkonných počítačích ke snížení cyklu paměti paměť je rozdělená do několika bloků (bank) pracujících samostatně a schopných provádět nezávisle čtecí nebo zápisový cyklus procesor komunikuje střídavě s různými paměťovými bloky přenosy mohou probíhat paralelně a komunikace mezi pamětí a procesorem se celkově zrychlí doba potřebná k realizaci jedné komunikace mezi blokem a procesorem se nazývá cyklus bloku procesor může v každém taktu provést jeden přístup do paměti
Sdílená paměť Moduly hlavní paměti jsou pro všechny procesory společné a využívají se střídavě K jejich propojení se používají propojovací sítě, umožňující propojit libovolný procesor s libovolným paměťovým modulem Procesory spolu mohou komunikovat prostřednictvím dat zapsaných do paměti vhodné pro úlohy s velkými nároky na rozsah a rychlost komunikací mezi procesory
-5-
Může nastat konflikt při komunikaci u systému s více než deseti procesory přidáním dalšího procesoru již nedochází k nárůstu výkonu paměťový systém založený na použití rychlých vyrovnávacích pamětí (cache) na straně procesoru problém s konzistencí dat
Distribuovaná paměť Každý procesor vybaven velkou lokální pamětí a často i vlastním souborem periferních zařízení Každý procesor se tak stává jádrem počítačového uzlu, který je vybaven značným stupněm autonomie Všechny počítačové uzly jsou propojené propojovací sítí
Výhody distribuované paměti: Každý procesor může přistupovat k své lokální paměti plnou rychlosti bez zásahu jiných procesorů Nevznikají konflikty při komunikaci Æ není omezen počet počítačových modulů v systému Není žádný problém s konzistencí dat Procesy komunikují obvykle formou zpráv přenášených propojovací sítí šířka toku dat v propojovací síti bývá poměrně malá vhodné pro úlohy, které nevyžadují silnou interakci mezi procesory
-6-