Amdahlův zákon

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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 = \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}} \le 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}}. Procentuální zlepšení získáme takto: :\text{Zlepšení} (%) = 100 \left( 1 - \frac{1}{S_{\text{celkové}}}\right)= 100 \left( F_E - \frac{F_E}{S_E}\right).

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

: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 :\text{Zlepšení} = 0,3 - 0,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

Externí odkazy

Kategorie:Paralelní programování

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top