Paralelní výpočty
Paralelní výpočty umožňují v informatice pomocí paralelního programování naprogramovat úlohy, které zpracovávají data paralelně. Používá se zdánlivý paralelní běh úloh pomocí multitaskingu, víceprocesorové systémy nebo počítačové clustery. Žádoucím výsledkem je jednodušší algoritmus a rychlejší výpočet.
Obsah |
Druhy paralelních počítačů[editovat]
Z hlediska stavby je možné rozdělit paralelního počítače na:
- multipočítače (volně vázané, s distribuovanou pamětí) – počítače zapojené do sítě, které si předávají zprávy po sériové síti; velkým zapojením tohoto typu se říká cluster
- multiprocesory (těsně vázané, se sdílenou pamětí) – obsahují několik procesorů připojených k jedné paměti
Flynnova klasifikace paralelních systémů[editovat]
| Single Instruction | Multiple Instruction | |
|---|---|---|
| Single Data | SISD | MISD |
| Multiple Data | SIMD | MIMD |
Flynnova klasifikace je zřejmě nejznámější klasifikací paralelních systémů, vznikla v roce 1966. Systémy jsou klasifikovány podle dvou hledisek - toku instrukcí a toku dat. Klasifikace obsahuje 4 hlavní typy paralelních systémů a další 2 rozšiřující typy.
SISD (s jedním tokem instrukcí, s jedním tokem dat): Počítač zpracovává data sériově podle jednoho programu. Takto pracuje například počítač von Neumannova typu.
SIMD (s jedním tokem instrukcí, s vícenásobným tokem dat): Počítač používající více stejných procesorů, které jsou řízeny společným programem. Zpracovávaná data jsou různá, takže každý procesor pracuje s jinou hodnotu, ale všechny procesory současně provádějí stejnou instrukci.
MISD (s vícenásobným tokem instrukcí, s jedním tokem dat): Tento typ se v praxi prakticky nepoužívá. Vznikl spíše pro doplnění jednotlivých kategorií.
MIMD (s vícenásobným tokem instrukcí, s vícenásobným tokem dat): Víceprocesorový systém, v němž je každý procesor řízen vlastním programem a pracuje na vlastních datech.
MSIMD (vícenásobné SIMD): V tomto systému pracuje několik podsystémů SIMD nezávisle na sobě. Jednotlivé podsystémy zpracovávají jiný program, proto musí být řízeny stejně jako systém MIMD.
SPMD (stejný program, s vícenásobným tokem dat): Všechny procesory vykonávají stejný program, ale jsou na sobě nezávislé (nejsou synchronizovány). Jednotlivé procesory musí mít svůj řadič, který řídí rychlost přísunu instrukcí a jejich provádění.
Paralelní systém[editovat]
Je systém, v němž může probíhat několik procesů současně. Využívá se pro zvýšení výkonnosti nad hranici danou konkrétní technologií výroby mikroprocesorů. Výkon systému při zvyšování počtu procesorů neroste lineárně, ale má logaritmický průběh. Nelineární růst výkonu je způsoben vlivem komunikace CPU, synchronizace, nedokonalým vytížením, nevhodnými algoritmy apod.
Využívání paralelismu[editovat]
Paralelismus byl po mnoho let využíván pouze ve výpočetně náročných aplikacích (výzkum částic, letectví, kosmonautika…). Ovšem s postupným zvyšováním frekvence CPU, bylo dosaženo fyzických omezení (spotřeba energie, vyzařované teplo) zabraňujících dalšímu zvyšování frekvence CPU. Další zvýšení výkonu výpočetních systémů bylo možné pouze pomocí využívání paralelních výpočtů, které se staly hlavním modelem využívaným v architektuře počítačů. V současnosti se již paralelismu využívá i v běžných počítačích, především u vícejádrových procesorů.
Související články[editovat]
- Paralelní programování
- Meziprocesová komunikace – hraje v paralelním programování velkou roli
- Symetrický multiprocesing (SMP)
- Non-Uniform Memory Access (NUMA)
- Paralelismus