Amdahlův zákon

Z testwiki
Verze z 29. 11. 2022, 01:24, kterou vytvořil imported>E-bej (Oprava výpočtu procentuálního zlepšení. (Nedávalo smysl, že zrychlením 30% výpočtu zrychlíme celek o 31%. Tak jsem to opravil podle anglické verze.))
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledává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

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=výkonnost při použití zlepšenívýkonnost bez použití zlepšení=PnovýPpůvodní

nebo také pomocí

S=doba výpočtu bez použití zlepšenídoba výpočtu při použití zlepšení=TpůvodníTnový

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é

FE=původní doba výpočtu zlepšené částipůvodní celková doba výpočtu1
SE=původní doba výpočtu zlepšené části úlohydoba výpočtu zlepšené části úlohy>1

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

Tpo zlepšení=Tpřed zlepšením*((1FE)+FESE)

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

Scelkové=Tpřed zlepšenímTpo zlepšení=1(1FE)+FESE.

Procentuální zlepšení získáme takto:

Zlepšení(%)=100(11Scelkové)=100(FEFESE).

Příklady

Dílčí zrychlení

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í?

FE=0,3
SE=5
Scelkové zrychlení=1(10,3)+0,35=10,761,316
Zlepšení=0,30,06=0,24.

Z výpočtu je vidět, že systém bude zrychlen o 24 %.

Paralelizace části výpočtu

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

Reference

Šablona:Překlad

Externí odkazy

Šablona:Pahýl Šablona:Autoritní data