Legge di Amdahl per i calcolatori elettronici

Legge di Amdahl per i calcolatori elettronici

La legge di Amdahl serve a calcolare l’eventuale guadagno di prestazione ottenibile migliorando una o più “sezioni” di un calcolatore. Essa afferma quanto segue: il miglioramento di prestazione ottenibile mediante l’uso di alcune modalità di esecuzione più veloci è limitato dalla frazione di tempo in cui tali modalità possono essere impiegate.

Per comprendere a pieno questa affermazione e per esplicitarla in termini quantitativi, dobbiamo premettere la definizione dell’accelerazione (speedup) ottenibile da un calcolatore quanto utilizza una particolare caratteristica.

Supponiamo di poter apportare un miglioramento ad una macchina per aumentare le sue prestazioni; l’accelerazione ottenuta tramite il miglioramento è definibile tramite il seguente rapporto:

A = PR+ / PR = TE / TE+

dove TE è il tempo di esecuzione, per l’intero lavoro preso in considerazione, senza il miglioramento (mentre PR è il suo reciproco), mentre invece TE+ è il tempo di esecuzione dello stesso lavoro ma in presenta del miglioramento (mentre PR+ è il suo reciproco).

L’accelerazione dice dunque quanto sarà più veloce l’esecuzione di un lavoro con   la macchina “migliorata” rispetto all’esecuzione con la macchina “originaria”. Ad esempio, se un dato lavoro viene svolto in 15 secondi dalla macchina originaria e in 10 secondi da quella migliorata, avremo una accelerazione di 15/10=1.5 (ovviamente adimensionale, trattandosi di un rapporto tra quantità omogenee).

Premesso questo, la legge di Amdahl fornisce un metodo rapido sia per determinare l’accelerazione sia per capire da cosa essa possa essere limitata. In particolare, essa fa risalire l’accelerazione a due  fattori:

  • la frazione di tempo di lavoro della macchina originaria che può essere modificata per avvantaggiarsi dei miglioramenti: si tratta perciò del rapporto tra il tempo durante il quale la macchina può usufruire del miglioramento ed il tempo totale di Questa frazione, che indicheremo con FR+, è chiaramente sempre minore o uguale all’unità;
  • il miglioramento ottenuto con il modo di esecuzione migliorato, espresso come rapporto tra il tempo del modo originale ed il tempo del modo migliorato. Indicheremo questo rapporto con  A+.

Da qui otteniamo immediatamente l’accelerazione globale A semplicemente esplicitando il rapporto TE/TE+:

A = PR+ / PR = TE / TE+ = 1 / [(1-FR+) + FR+ / A+].

Questa espressione mostra chiaramente che un miglioramento anche molto spinto (corrispondente cioè ad A+>>1) di una particolare funzione potrebbe avere un effetto complessivo pressoché nullo sulle prestazioni (cioè  circa uguale a 1) se tale funzione viene usata molto raramente (FR+<<1).

Esempio numerico

Facciamo subito un esempio di applicazione della legge di Amdahl. Supponiamo di applicare un miglioramento che consenta un funzionamento 10 volte più veloce rispetto a quello della macchina originaria, ma che sia utilizzabile solo per il 40% del tempo. Per calcolare l’accelerazione globale ottenuta incorporando questo miglioramento, ci basta applicare le formule di prima:

  • in primo luogo, dobbiamo calcolare la frazione migliorata FR+, che è pari al rapporto tra il tempo durante il quale la macchina può usufruire del miglioramento ed il tempo totale di lavoro: le specifiche ci dicono che questa frazione vale 40% in percentuale, per cui in unità naturali vale 4;
  • in secondo luogo, dobbiamo calcolare l’accelerazione migliorata A+, ossia il rapporto tra il tempo del modo originale ed il tempo del modo migliorato: le specifiche ci dicono che questo valore è 10

Applicando la Legge di Amdahl (ultima formula paragrafo precedente) si ottiene che: A = 1,56.

Precedente Definizione di prestazione di un computer in informatica Successivo Principio di località temporale e spaziale in informatica

Lascia un commento

*