Gene Amdahl 1967-ban fogalmazta meg azt a megfigyelését, ami az adott programkód párhuzamosítására nézve irányadó adattal szolgál a teoretikusan elérhető maximális sebességnövekedésre vonatkozóan. Az IBM-nél is dolgozó szakember gyakorlatilag egy képlettel állt elő, amit igen nehéz szöveges formába önteni, így a közérthetőség érdekében a példákkal való szemléltetés a legjobb módszer.
Gene Amdahl
Az alábbi képletben a P jelenti a programkód párhuzamosítható részét, míg az N a processzormagok számát. Az S lényegében egy irányadó adat lesz arra vonatkozóan, hogy a programkód párhuzamosítható részeit figyelembe véve a megcélzott mennyiségű processzorral a program mekkora gyorsulásra tehet szert elméletben. Ez első olvasásra valószínűleg idegenül hat, de a példák mellett már érthető lesz a lényege.
Tegyük fel, hogy az egész kód szekvenciális, vagyis nincs párhuzamosítható rész. Ekkor nyilván csak egyetlen processzormagon fog futni, de a megcélzott hardver legyen nyolcmagos. Nyilván ezt még számolni sem érdemes, csupán a példa kedvért részletezzük. A fenti képletbe behelyettesítve az értékeket az alábbi számítás jön ki, és az S értéke 1 lesz, vagyis hiába van nyolcmagos processzorunk, akkor is csak egyetlen magon fog futni a program.
Ennek inverze, ha a teljes kód párhuzamosítható, így elvben a nyolc processzormag kihasználása maximális lesz. Az adatok behelyettesítése után ki is jön ez az eredmény, így a képlet megint jól vizsgázott.
A két végletet persze csak az ellenőrzés érdekében használtuk, így álljon itt egy tényleg érdekes példa. Legyen a kód 90%-a párhuzamosítható, és természetesen maradjon a nyolcmagos processzor is. Ebben az esetben a gyorsulás elméleti értéke kerekítve 4,706-szoros lesz, ami az alábbi számítással jön ki.
A példák után bátran lehet számolni. A gyakorlat szempontjából elmondható, hogy a lehetséges gyorsítás mértéke mindig kisebb, mint egy konstans érték, ami igen kedvezőtlen a programkód párhuzamosítására vonatkozóan. Ha a programkód 95%-a párhuzamosítható, akkor a maximális elérhető gyorsulás elméletben hússzoros lehet függetlenül attól, hogy hány processzormag dolgozik a feladaton.
Amdahl törvénye viszont nem veszi számításba, hogy a megoldandó feladatok mérete az idő előrehaladtával növekedhet, amire a Gustafson-Barsis-törvény reagál.
A témához extra adalék, hogy az Intel korábban egy érdekes megfigyelést tett Amdahl törvényével kapcsolatban. A cég szerint ha az algoritmusban előfordul nem párhuzamosítható programrész, akkor az már képtelen maximális processzorkihasználást elérni két mag esetén, de ettől még gyorsulni fog három, vagy több mag használata mellett.