Amdahlův zákon
Amdahlův zákon je pravidlo používané v informatice k vyjádření maximálního předpokládaného zlepšení systému poté, co je vylepšena pouze některá z jeho částí. Využívá se např. u víceprocesorových systémů k předpovězení teoretického maximálního zrychlení při přidávání dalších procesorů.
Zákon je pojmenován po americkém počítačovém architektovi Genu Amdahlovi. Poprvé byl představen na konferenci AFIPS Spring Joint Computer Conference v roce 1967.
Výpočet
[editovat | editovat zdroj]Velikost zlepšení můžeme označit jako zrychlení S a bude nám určovat, kolikrát je běh úlohy s vylepšením rychlejší.
nebo také pomocí
Pokud chceme počítat celkový zisk na vylepšení určitých částí, můžeme použít následující postup:
Nejdříve definujeme proměnné
poté můžeme spočítat dobu výpočtu po zlepšení
celkové zrychlení S poté můžeme počítat jako
- .
Procentuální zlepšení získáme takto:
- .
Příklady
[editovat | editovat zdroj]Dílčí zrychlení
[editovat | editovat zdroj]Předpokládejme, že výpočet trvá 30 % času, zbytek času je nevyužit či se čeká na I/O. Dále předpokládejme, že výpočet můžeme 5× zrychlit. Jaká bude celková hodnota zrychlení?
- .
Z výpočtu je vidět, že systém bude zrychlen o 24 %.
Paralelizace části výpočtu
[editovat | editovat zdroj]Pokud například při výpočtu nějakého problému lze 12 % tohoto výpočtu urychlit paralelním zapojením použitých procesorů (a zbylých 88 % se bude dále řešit sériově), je podle Amdahlova zákona maximální možné zrychlení vylepšené verze (tedy při počtu procesorů blížících se limitně nekonečnu) rovno 1/(1 − 0,12) = 1,136. Zlepšení bude (0,12 − 0).
Tedy při rozdělení sériová část – paralelní část v poměru 88:12 lze přidáváním dalších procesorů docílit zrychlení jen o oněch 12 %, neboť sériovou část nezrychlujeme a zůstane stejná.
Odkazy
[editovat | editovat zdroj]Reference
[editovat | editovat zdroj]V tomto článku byl použit překlad textu z článku Amdahl's law na anglické Wikipedii.
Externí odkazy
[editovat | editovat zdroj]- Obrázky, zvuky či videa k tématu Amdahlův zákon na Wikimedia Commons