Amdahlov zakon

V računalniški arhitekturi je Amdahlov zakon (ali Amdahlov argument[1]) formula, ki podaja teoretično pospešitev latence izvajanja naloge pri fiksni delovni obremenitvi, ki se lahko pričakuje od sistema, katerega viri so izboljšani.
Zakon se običajno navaja v obliki izjave:
"Splošno izboljšanje zmogljivosti, pridobljeno z optimizacijo posameznega dela sistema, je omejeno z deležem časa, ko se izboljšani del dejansko uporablja".[2]
Imenuje se po računalniškem znanstveniku Genu Amdahlu in je bil predstavljen na spomladanski skupni računalniški konferenci Ameriške zveze društev za obdelavo informacij (AFIPS) leta 1967.
Amdahlov zakon se pogosto uporablja pri vzporednem računanju za napovedovanje teoretične pospešitve pri uporabi več procesorjev. Na primer, če program potrebuje 20 ur za dokončanje z uporabo ene same niti in enournega dela programa ni mogoče vzporediti, potem je mogoče vzporediti le preostalih 19 ur ( Predloga:Brez preloma ) časa izvajanja. Zato je ne glede na to, koliko niti je namenjenih vzporednemu izvajanju tega programa, minimalni čas izvajanja vedno daljši od 1 ure. Zato je teoretično pospešitev največ 20-kratna zmogljivost ene niti, .
Amdahlov zakon ni omejen samo na računalništvo. Pojavlja se tudi pri transportu, organizaciji proizvodnje in še kje. Na primer, vsi vemo, da pri potovanju povečanje hitrosti letala ni bistveno, če letalo potrebuje za let 30 minut, prevoz na letališče in z njega pa traja 2 uri.
Definicija
Amdahlov zakon lahko formuliramo na naslednji način:[3]
kjer je
- S latenca teoretična pospešitev izvedbe celotne naloge;
- s je pospešitev dela naloge, ki ima koristi od izboljšanih sistemskih virov;
- p je delež časa izvajanja, ki ga je prvotno zasedel del, ki ima koristi od izboljšanih virov.
Poleg tega
kaže, da se teoretična pohitritev izvedbe celotne naloge povečuje z izboljšavo virov sistema in da je ne glede na velikost izboljšave teoretična pohitritev vedno omejena z delom naloge, ki ne more imeti koristi od izboljšave.
Amdahlov zakon velja samo za primere, kjer je velikost problema fiksna. V praksi, ko je na voljo več računalniških virov, se običajno uporabljajo za večje probleme (večji nabori podatkov), čas, porabljen v delu, ki ga je mogoče vzporediti, pa pogosto raste veliko hitreje kot inherentno serijsko delo. V tem primeru daje Gustafsonov zakon manj pesimistično in bolj realistično oceno vzporedne uspešnosti.[4]