Quanto è veloce un computer?
![]()
Quanto è veloce un computer? A questa domanda, apparentemente semplice, è in realtà abbastanza difficile rispondere. Sì, sappiamo tutti che un computer è molto veloce, che è in grado di fare molte operazioni al secondo, che se usiamo la calcolatrice impiegherà un attimo a fare calcoli anche molto complessi e magari conosciamo anche i GHz della velocità del processore. Ma si tratta o di valutazioni qualitative (come molto veloce… ma quanto?) o di misurazioni che poco o niente hanno a che fare con la nostra vita quotidiana e che quindi rimangono numeri con significati poco intellegibili (appunto i GHz). Infine c’è da considerare che la maggior parte dei compiti che assegniamo ad un computer non sono solo particolarmente complessi per noi umani, ma spesso semplicemente operazioni che non possiamo fare (e che quindi deleghiamo ad un computer). Banalmente si può pensare all’apertura di una pagina web o al download un file mp3: nostro malgrado, non siamo fisicamente in grado di confrontare la nostra velocità di apertura di una pagina web con quella di un computer.
Quindi, quanto è veloce un computer? Per rispondere a questa domanda è quindi necessario porre un termine di paragone fra attività confrontabili e realizzabili sia da noi esseri umani che dai computer. Quanto di più semplice che il contare? Immaginiamo quindi di dover contare da 1 a 1.000.000.000 (un miliardo). Poniamo che i numeri non debbano nemmeno essere pronunciati, ma solo pensati (un po’ come farebbe un computer che conta visualizzare sullo schermo i numeri uno dopo l’altro). Giusto per essere generosi con le capacità umane, poniamo che una persona possa contare alla velocità di 10 numeri al secondo, immaginando (con ulteriore generosità ) che tale velocità venga mantenuta anche quando i numeri si fanno particolarmente grandi e non solo la stanchezza potrebbe sopraggiungere, ma anche la capacità di pensare in un decimo di secondo al numero -per esempio- duemilionitrecentosettantasettemiliaquattrocentoventidue. A questo punto, con una velocità di 10 numeri al secondo, questo conteggio fino a 1 miliardo si concluderebbe, per un essere umano, dopo 3 anni e 2 mesi di forsennato ritmo senza pause nè sonno. Una stima di 10-20 anni sarebbe molto più realistica ma non altrettanto generosa, quindi la ignoriamo. Tanto cambia poco.
Infatti il secondo termine del paragone, ovvero il tempo necessario per un computer per contare da 1 a 1 miliardo è a dir poco sbalorditivo. Come computer di riferimento non prenderemo né un supercomputer della Nasa o del CERN, ma semplicemente il mio MacBook con processore Intel Core 2 Duo a 2GHz, prodotto da Apple circa 2 anni fa.
Il modo più semplice per implementare questo conteggio su un computer è scrivere un programma. Nel nostro esempio scegliamo il linguaggio di programmazione C, un linguaggio ideato quasi 40 anni fa, ma a tutt’oggi uno dei linguaggi più diffusi anche per la sua particolare velocità nell’esecuzione dei comandi. Per comodità di realizzazione mi sono servito dell’ambiente di sviluppo XCode, ma trattandosi di un programma molto semplice, un qualsiasi compilatore anche per sistemi non Mac può andare benissimo (vedi ad esempio gcc).
Il listato del programma è il seguente
#include <stdio.h> #include <time.h> int main () { int lim = 1000000000; int i; time_t t; int durata; t = time(NULL); printf("Conto fino a %d... \n", lim); for (i = 1; i <= lim; ++i) { } durata = time(NULL) - t; printf("finito in %d secondi!", durata); return 0; }
in breve, questo programma da istruzione al computer di contare fino a 1 miliardo (tramite il ciclo for che si ripete fino al valore fissato per la variabile lim, ovvero appunto 1 miliardo), scrivendo sullo schermo che è iniziato il conteggio e dopo quanti secondi è finito, tramite la funzione printf().
Compilato ed eseguito, questo piccolo programma in C restituisce questo semplice output a video:
Conto fino a 1000000000…
Finito in 4 secondi!
una semplice frase che però è molto più esemplificativa di dire che mediamente il programma è riuscito a contare un numero ogni 0,000000004 secondi.
Tornando al paragone con l’essere umano possiamo dire che, poste tutte le condizioni generose succitate per il conteggio fino ad un miliardo, un computer è almeno 25 milioni di volte più veloce di un essere umano.
Condividi o
Stampa
questo articolo
(letto 3,654 volte)

(4 voti)