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 MIMD Vektorové počítače 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 procesor Skalární registry Vektorové registry - 2 -
Procesory vektorového počítače Skalární procesor zpracovává standardní sadu strojových instrukcí 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) m počítačům se také říká numerické superpočítače používají se pro složité výpočty 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. registr A registr B Paralelní jednotky ALU registr C 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. registr A registr B Proudová jednotka ALU 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 -