Differenza tra latenza e throughput in informatica

Differenza tra latenza e throughput in informatica

Nell’articolo Definizione di prestazione di un computer in informatica abbiamo dato una definizione di prestazione di un computer, qui invece si analizzano meglio i due parametri differenti rispetto ai quali giudicare la velocità di un calcolatore. Essi sono latenza e throughput:

  • la latenza (o tempo di risposta o tempo di esecuzione) del calcolatore, ossia il tempo che intercorre tra l’inizio ed il completamento di un  evento;
  • il throughput (o banda passante)  del calcolatore, ossia la quantità complessiva di lavoro svolto in un dato intervallo di tempo.

Differenza tra latenza e throughput in informatica

Molto spesso, il progettista si trova di fronte alla necessità di ottimizzare le prestazioni temporali, espresse appunto in termini di latenza o di throughput. Se l’obbiettivo del progetto riguarda essenzialmente la latenza, l’unica possibilità di soluzione, in termini architetturali, consiste nello spingere al massimo il parallelismo tra operazioni (ossia la possibilità di svolgere più operazioni contemporaneamente) e nell’usare unità funzionali particolarmente veloci (specialmente quelle di tipo aritmetico): generalmente, questo comporta chip di dimensioni più grandi e quindi anche più complicati e costosi. Se invece il vincolo riguarda il throughput, ossia sostanzialmente la frequenza di presentazione dei dati e  di estrazione dei risultati  per un sistema che svolge con continuità i propri compiti (magari eseguendo sempre lo stesso algoritmo su diversi flutti di dati), allora l’ottimizzazione della latenza non necessariamente è l’unica via di soluzione: infatti, da un lato può capitare che l’architettura a latenza minima, pur soddisfacendo il vincolo sul throughput, risulti comunque troppo costosa, così come può succedere che, pur ottenendo la latenza minima, non si riesca comunque a garantire il throughput richiesto. In ambedue i casi, si può pensare di applicare un’altra forma di parallelismo, che corrisponde al cosiddetto pipelining.

Letteralmente, “pipeline” significa “oleodotto”, ossia un sistema che riceve con continuità in ingresso un flusso di materiale e che garantisce una certa portata attraverso qualsiasi sezione; se vediamo il “trasferimento del materiale” come una forma di elaborazione, possiamo immaginare che ogni “sezione” della pipeline riceva in ingresso un “quanto” di materiale, lo elabori e lo trasferisca alla sezione  successiva, dopodiché è immediatamente disponibile a ricevere il prossimo quanto. La latenza della pipeline (intesa come tempo necessario per il  trasferimento  del quanto di materiale dall’ingresso primario all’uscita primaria) può essere anche molto elevata nel suo complesso, ma il pregio del sistema è che accetta quanti di materiale in ingresso (fornendoli poi in uscita) indipendentemente dalla latenza, con cadenza pari alla latenza della sezione più lenta della pipeline stessa. E’ ovvio che l’oleodotto è un sistema tempo-continuo, mentre invece un calcolatore elettronico è un sistema tempo-discreto (sincronizzato al segnale di clock), ma questa analogia serve dare una idea iniziale dei pregi di una pipeline.

 

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *