Amdahlův zákon

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Závislost zvýšení výkonu na počtu procesorů, barvy značí objem zlepšované části systému v procentech

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ší.

S = \frac{\text{výkonnost při použití zlepšení}}{\text{výkonnost bez použití zlepšení}} = \frac{P_{\text{nový}}}{P_{\text{původní}}}

nebo také pomocí

S = \frac{\text{doba výpočtu bez použití zlepšení}}{\text{doba výpočtu při použití zlepšení}} = \frac{T_{\text{původní}}}{T_{\text{nový}}}

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é

F_E = \frac{\text{původní doba výpočtu zlepšené části}}{\text{původní celková doba výpočtu}} <= 1
S_E = \frac{\text{původní doba výpočtu zlepšené části úlohy}}{\text{doba výpočtu zlepšené části úlohy}} > 1

poté můžeme spočítat dobu výpočtu po zlepšení

T_{\text{po zlepšení}} = T_{\text{před zlepšením}} * ((1 - F_E) + \frac{F_E}{S_E})

celkové zrychlení S poté můžeme počítat jako

S_{\text{celkové}} = \frac{T_{\text{před zlepšením}}}{T_{\text{po zlepšení}}} = \frac{1}{(1 - F_E) + \frac{F_E}{S_E}}

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 5x zrychlit. Jaká bude celková hodnota zrychlení?

F_E = 0,3
S_E = 5
S_{\text{celkové zrychlení}} = \frac{1}{(1 - 0,3) + \frac{0,3}{5}} = \frac{1}{0,76} \doteq 1,316

Z výpočtu je vidět, že systém bude zrychlen přibližně o 31,6 %.

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.

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 13,6 %.

Reference[editovat | editovat zdroj]

Kategorie Amdahl's law ve Wikimedia Commons V tomto článku byl použit překlad textu z článku Amdahl's law na anglické Wikipedii.