La legge di Amdahl è una teoria che implica l’esecuzione di algoritmi in serie o in parallelo. Afferma che i vantaggi dell’esecuzione in parallelo (ovvero, l’esecuzione di più passaggi contemporaneamente) sono limitati da qualsiasi sezione dell’algoritmo che può essere eseguita solo in serie (un passaggio alla volta). L’uso più comune della legge di Amdahl è nel calcolo parallelo, ad esempio su macchine multi-core.
In fondo, la legge di Amdahl è una formula matematica. Detto nella sua forma più semplice, dice che il più grande aumento di velocità che può essere ottenuto parallelizzando un processo è uguale a uno diviso per la proporzione del processo che non può essere parallelizzato, meno uno. Ad esempio, se l’80% di un processo può essere parallelizzato, allora uno diviso per il restante 20% dà cinque; togliendone uno ne lascia quattro. Ciò significa che parallelizzare il processo in questo modo lo rende quattro volte più veloce. La formula funziona anche dove è possibile parallelizzare solo una minoranza del processo: se è possibile parallelizzare il 12%, il calcolo è uno diviso per l’88%, che equivale a 1.136, meno uno, che aggiunge un aumento della velocità del 13.6%.
La formula può essere adattata per l’uso in situazioni più complicate in cui le diverse fasi del processo ottengono aumenti di velocità diversi dall’essere parallelizzate. Ciò comporta la produzione di una cifra per ogni fase, che è la percentuale di tempo dedicata a quella fase prima della parallelizzazione, divisa per l’aumento di velocità, quindi sommando queste cifre per produrre un totale. La formula divide quindi uno per questo totale e sottrae uno dal risultato, dando l’aumento complessivo della velocità.
L’area principale in cui viene utilizzata la legge di Amdahl è il calcolo parallelo. È qui che più processori lavorano su un’attività contemporaneamente. Si tratta di uno dei principali inconvenienti dei processori per computer, ovvero che funzionano molto rapidamente ma possono eseguire solo un’azione alla volta. In alcuni casi, un processore multi-core può eseguire efficacemente il calcolo parallelo, poiché simula più processori.
Mentre alcune persone sostengono che la legge di Amdahl è un nome fuorviante e dovrebbe davvero essere “l’argomentazione di Amdahl”, il nome è un gioco di parole relativo alla legge di Moore. Questa è una teoria basata su una dichiarazione del 1965 del fondatore di Intel Gordon Moore. Ha predetto che la tecnologia sarebbe progredita in modo tale che il numero di transistor montati su un circuito integrato sarebbe raddoppiato ogni due anni, una previsione che si è rivelata estremamente accurata.