De wet van Amdahl is niet *niet* van toepassing op parallelle computers; het is op hen van toepassing, en het is van cruciaal belang om hun beperkingen te begrijpen. Het misverstand komt waarschijnlijk voort uit mensen die hopen een grenzeloze versnelling te bereiken met parallellisatie. De wet van Amdahl laat zien dat dit onmogelijk is.
De wet van Amdahl stelt dat de maximale versnelling die kan worden bereikt door het parallelliseren van een programma wordt beperkt door het gedeelte van het programma dat *niet* kan worden geparallelliseerd. Laten we het opsplitsen:
* Seriële portie: Sommige delen van een programma vereisen inherent sequentiële uitvoering. Een enkele lus die afhankelijk is van het resultaat van de vorige iteratie kan bijvoorbeeld niet effectief worden geparallelliseerd. Dit is het deel van het programma dat sequentieel blijft, vaak aangeduid als 'f'.
* Parallel gedeelte: Dit is het deel van het programma dat *kan* worden geparallelliseerd, (1 - f).
* Aantal processors: 'n' vertegenwoordigt het aantal gebruikte processors.
Formule van de wet van Amdahl:
Versnelling =1 / (f + (1 - f) / n)
Waarom het relevant is voor parallelle computers:
Ongeacht hoeveel processors ('n') u toevoegt, als zelfs maar een klein deel van het programma ('f') inherent sequentieel is, wordt de versnelling beperkt. Bijvoorbeeld:
* Als 10% van het programma sequentieel is (f =0,1), zelfs met een oneindig aantal processors (n nadert oneindig), is de maximale versnelling slechts 1 / 0,1 =10. Je krijgt nooit een versnelling groter dan 10x, ongeacht hoeveel hardware je er tegenaan gooit.
Daarom gaat de wet van Amdahl er niet over dat parallelle computers *niet* onderworpen zijn aan de principes ervan; het gaat erom hun inherente beperkingen op het gebied van versnelling te benadrukken. Effectieve parallelle programmering vereist het minimaliseren van het sequentiële deel ('f') om de voordelen van parallellisatie te maximaliseren. Het negeren van de wet van Amdahl leidt tot onrealistische verwachtingen over de prestatiewinst die haalbaar is via parallelle verwerking. |