Definizione di prestazione di un computer in informatica

Definizione di prestazione di un computer in informatica

Definizione di prestazione di un computer in informatica

Innanzitutto cosa si intende quando si afferma che “un dato calcolatore è più veloce di un altro“?

In informatica, se viene posta questa domanda si potrebbe subito pensare a due significati diversi (prestazione):

  • ad esempio, un generico utente potrebbe dire che un calcolatore è più veloce di un altro quando esegue un programma in minor tempo rispetto all’altro;
  • al contrario, il gestore di un centro informatico potrebbe dire che il calcolatore più veloce è quello che, a parità di intervallo di tempo a disposizione (ad esempio un’ora), completa il maggior numero di lavori.

La differenza tra i due “significati” è dunque riscontrabile nel parametro usato per giudicare la velocità di un calcolatore:

  • l’utente generico è soprattutto interessato a minimizzare il response time (tempo di risposta), ossia il tempo che intercorre tra l’inizio ed il completamente di un Si parla anche di tempo di esecuzione (execution time) oppure di latenza (latency);
  • al contrario, il gestore del centro informatico è interessato essenzialmente a massimizzare il throughput del calcolatore, ossia la quantità complessiva di lavoro svolto in un dato intervallo di Si parla anche di banda passante (bandwidth) del calcolatore, da non confondere con l’ampiezza di banda dei mezzi trasmissivi, che è qualcosa di totalmente diverso.

Si può del resto intuire che, almeno in condizioni normali, un tempo di risposta più basso equivale ad un aumento del throughput: quanto più il sistema è rapido nell’eseguire i singoli compiti, tanti più compiti potrà portare a compimento in un  dato intervallo di tempo.

Per comprendere a pieno i concetti appena citati, possiamo fare un semplice esempio. Esistono diversi modi per migliorare le prestazioni di un calcolatore; ad esempio, tre di questi sono i seguenti:

  1. periodo di clock più breve (cioè clock più veloce);
  2. processori multipli per compiti diversi (Tassonomia di Flynn);
  3. elaborazione parallela per i problemi scientifici.

Il primo ed il terzo metodo sicuramente garantiscono tempi di risposta più brevi:  ad esempio, se l’esecuzione di un dato programma richiede N cicli di clock e ogni  ciclo dura t secondi, il tempo totale di esecuzione è N×t, che sarà tanto più piccolo quanto più piccolo è t. Quindi, il primo ed il terzo metodo contribuiscono anche ad aumentare il throughput complessivo. Il secondo metodo, invece, non comporta alcun miglioramento sulla velocità con cui viene eseguito il singolo compito, ma consente di svolgere più compiti contemporaneamente, per cui serve ad incrementare solo il throughput.

Misure probabilistiche per la misura della prestazione

Talvolta, le misure delle prestazioni di un calcolatore sono descritte meglio da distribuzioni di probabilità che non da valori deterministici. Ad esempio, consideriamo il tempo di risposta necessario per completare una data operazione di I/O sul disco rigido del calcolatore: tale tempo di risposta dipende sia da fattori deterministici (ad esempio dalla quantità di dati da leggere o scrivere su disco) sia da fattori non deterministici (ad esempio da ciò che il disco sta eventualmente già facendo quando viene richiesto l’I/O oppure dalla quantità di altri processi in attesa di accedere allo stesso disco). Data la presenza di tali fattori non deterministici, ha più senso parlare di tempo medio di risposta per un I/O da disco. In modo analogo, anche l’effettivo throughput di disco (cioè il numero di dati che transitano realmente da o verso il  disco nell’unità di tempo) non risulta essere un valore costante.

Pipelining: migliorare le prestazioni di un computer

Il throughput ed il tempo di esecuzione interagiscono in molti modi nella progettazione di un calcolatore. Una delle interazioni più importanti è  rappresentata dalla cosiddetta operazione di pipelining: si tratta di una tecnica di realizzazione del calcolatore che riesce ad aumentare le prestazioni in termini sia  di throughput sia di tempo di risposta sui singoli processi, sfruttando la sovrapposizione dell’esecuzione di più istruzioni.

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 *