Než se pustíme do paralelních výpočtů, podívejme se nejprve na pozadí výpočtů počítačového softwaru a na to, proč se to v moderní době nepodařilo.
Počítačový software byl psán konvenčně pro sériové výpočty. To znamenalo, že k vyřešení problému algoritmus rozdělí problém na menší instrukce. Tyto diskrétní instrukce se pak postupně provádějí na centrální procesorové jednotce počítače. Teprve po dokončení jedné instrukce se spustí další.
Reálným příkladem může být situace, kdy lidé stojí ve frontě a čekají na lístek do kina, kde je pouze pokladní, která postupně vydává lístky jednotlivým osobám. Složitost této situace se zvyšuje, když jsou dvě fronty a jen jedna pokladní.
Takže, ve zkratce Sériové počítání je následující:
- Při něm se zadání problému rozdělí na diskrétní instrukce.
- Poté se instrukce provádějí jedna po druhé.
- V každém okamžiku se provede jen jedna instrukce.
Podívejte se na bod 3. Složité počítání. To způsobovalo ve výpočetním průmyslu obrovský problém, protože v každém okamžiku se prováděla pouze jedna instrukce. To bylo obrovské plýtvání hardwarovými zdroji, protože pro určitou instrukci a času bude spuštěna pouze jedna část hardwaru. Vzhledem k tomu, že problémové příkazy byly stále těžší a objemnější, prodlužovala se i doba provádění těchto příkazů. Příkladem procesorů jsou Pentium 3 a Pentium 4.
Nyní se vraťme k našemu reálnému problému. Určitě bychom mohli říci, že složitost se sníží, když budou existovat 2 fronty a 2 pokladní, které budou vydávat lístky 2 osobám současně. To je příklad paralelního počítání.
Paralelní výpočet –
Jedná se o použití více výpočetních prvků současně pro řešení nějakého problému. Problémy jsou rozděleny na instrukce a řeší se současně, protože každý zdroj, který byl použit k práci, pracuje současně.
Výhody paralelní výpočetní techniky oproti sériové výpočetní technice jsou následující:
- Šetří čas a peníze, protože mnoho zdrojů pracujících společně zkrátí čas a sníží případné náklady.
- Řešení větších problémů na sériové výpočetní technice může být nepraktické.
- Může využít nelokální zdroje, když jsou lokální zdroje omezené.
- Sériové výpočty „plýtvají“ potenciálním výpočetním výkonem, proto Paralelní výpočty lépe využívají hardware.
Typy paralelismu:
- Paralelismus na bitové úrovni: Je to forma paralelních výpočtů, která je založena na rostoucí velikosti procesoru. Uvažujme scénář, kdy 8bitový procesor musí vypočítat součet dvou 16bitových celých čísel. Nejprve musí sečíst 8 bitů nižšího řádu a poté sečíst 8 bitů vyššího řádu, což vyžaduje dvě instrukce k provedení operace. 16bitový procesor může tuto operaci provést pouze jednou instrukcí.
- Paralelismus na úrovni instrukcí: Procesor může v každé fázi taktu adresovat pouze méně než jednu instrukci. Tyto instrukce lze přeskupovat a seskupovat, které jsou později prováděny souběžně, aniž by to ovlivnilo výsledek programu. Tomu se říká paralelismus na úrovni instrukcí.
- Paralelismus na úrovni úloh: Paralelismus úloh využívá rozklad úlohy na dílčí úlohy a následné přidělení každé z dílčích úloh k provedení. Procesory provádějí provádění dílčích úloh souběžně.
Proč paralelní výpočty?
- Celý reálný svět probíhá dynamicky, tj. mnoho věcí se děje v určitém čase, ale na různých místech souběžně. Tato data jsou rozsáhle obrovská a je třeba je spravovat.
- Data reálného světa vyžadují dynamičtější simulace a modelování a pro dosažení téhož jsou klíčové paralelní výpočty.
- Paralelní výpočty zajišťují souběžnost a šetří čas i peníze.
- Složité, rozsáhlé soubory dat a jejich správu lze organizovat pouze a jedině pomocí přístupu paralelních výpočtů.
- Zajišťuje efektivní využití zdrojů. Je zaručeno efektivní využití hardwaru, zatímco při sériových výpočtech byla využita pouze část hardwaru a zbytek zůstal nevyužit.
- Sériovými výpočty také nelze prakticky realizovat systémy reálného času.
Aplikace paralelních výpočtů:
- Báze dat a dolování dat.
- Simulace systémů v reálném čase.
- Věda a inženýrství.
- Moderní grafika, rozšířená realita a virtuální realita.
Omezení paralelních výpočtů:
- Řeší například komunikaci a synchronizaci mezi více dílčími úlohami a procesy, které je obtížné dosáhnout.
- Algoritmy musí být řízeny tak, aby je bylo možné zpracovávat v paralelním mechanismu.
- Algoritmy nebo program musí mít nízkou vazbu a vysokou soudržnost. Vytvořit takové programy je však obtížné.
- Nejlépe technicky zdatní a zkušení programátoři mohou dobře nakódovat program založený na paralelismu.
Budoucnost paralelních výpočtů: Výpočetní graf prošel velkým přechodem od sériových výpočtů k paralelním. Technologický gigant, jako je Intel, již učinil krok směrem k paralelním výpočtům tím, že využívá vícejádrové procesory. Paralelní výpočty způsobí v budoucnu revoluci ve způsobu práce počítačů, a to k lepšímu. Vzhledem k tomu, že celý svět je vzájemně propojen ještě více než dříve, paralelní výpočty nám lépe pomáhají zůstat v tomto směru. S rychlejšími sítěmi, distribuovanými systémy a víceprocesorovými počítači se stává ještě potřebnějším.
Pozor čtenáři! Nepřestávejte se nyní učit. Osvojte si všechny důležité koncepty teorie CS pro pohovory SDE s kurzem teorie CS za studentsky příznivou cenu a staňte se připravenými v oboru.