3nigma666
06-04-2007, 11:47
2 anni fa , avevo creato per l'università un programma che testava e calcolava, su vettori di numeri di numeri, il tempo di esecuzione dei piu famosi algoritmi di ordinamento:
quicksort , heapsort e insertionsort.
Oggi , a distanza di 3 anni ho deciso cosi di ricompilare e provare quel software (di cui andavo parecchio orgoglioso xkè curato anche nei piu piccoli dettagli)
L'ho eseguito ed ho ottenuto dei risulatati.
Dopo di che ho pensato: proviamo a vedere che tempi ho ottenuto 3 anni fa con il mio vecchio pc.
Premetto: ora ho un AMD 64 bit a 4400+ , mentre prima avevo un AMD a 2200+
Inoltre il sistema operativo sul 2200 era Xp, ora è Vista.
ecco che vi posto i risultati (una porzione) fatti prima con il 2200+ e poi con il 4400+
AMD 2200+: e Xp
OS: Win32
ALGORITMO QUICKSORT
Tempo Minimo: 0.300 sec, Tempo Totale Esecuzione: 475.901 sec
Ripetizioni: 97524; Dimensione Input: 200; Campioni: 100;
Media Tempo singolo Ordinamento: 0,000051078543067 sec; Intervallo di Confidenza: +- 0,000000739924645 sec
================================================================
AMD 4400+ e Vista :
OS: Win32
ALGORITMO QUICKSORT
Tempo Minimo: 0.020 sec, Tempo Totale Esecuzione: 36.803 sec
Ripetizioni: 8240; Dimensione Input: 200; Campioni: 100;
Media Tempo singolo Ordinamento: 0.000037430733442 sec; Intervallo di Confidenza: +- 0.000001859233387 sec
================================================================
Come potete vedere , come ci si poteva aspettare, il tempo di esecuzione del 4400 + è LEGGERMENTE PIU VELOCE (di primo acchitto) (Piu veloce di 1,36 volte)
http://www.v4l3rio83.altervista.org/media.jpg
Questi valori sono abb. coerenti. Infatti se eseguo un algoritmo prima su un computer e poi su un spercomputer, l'incremento prestazionale non è evidentissimo.(come in questo caso)
Se io invece eseguo un algoritmo (che calcola la stessa cosa, nel nostro caso l'ordinamento di un vettore) con complessità migliorata (tipo passo da un algoritmo di complessità O(n^2) a O(n) nel caso peggiore ) allora il tempo di esecuzione avrà un miglioramento DECISAMENTE MAGGIORE CHE NON NEL PASSAGGIO DA COMPUTER A SUPERCOMPUTER ..
Quello che mi ha sbalordito è ben altro...
Il tempo minimo calcolabile è passato da 0.300 sec di Windows Xp a
0.020 di Vista . Questo significa che l'orologio interno di vista ha una precisione migliore..
Nonostante questo l'Intervallo di confidenza di Xp è nettamente inferiore rispetto a Vista!
http://www.v4l3rio83.altervista.org/intervallo.jpg
Questo cosa vuol dire ?
Significa che Vista è risultato molto piu impreciso come orologio nella computazione. Infatti l'intervallo di confidenza indica l'errore (medio)che può esser commesso sulla misurazione del tempo necessario per fare un singolo ordinamento (sia in positivo che in negavito).
TRADOTTO, se al valore Medio per ogni singolo ordinamento io aggiungo (quindi considero il caso peggiore) il suo intervallo di confidenza, ottengo un tempo molto simile a quello ottenuto con l'AMD 2200+ !! :eek:
http://www.v4l3rio83.altervista.org/media.jpg
http://www.v4l3rio83.altervista.org/intervallo.jpg
Questo significa che esser passati da un 2200 a un 4400 non ha portato nessun vero significativo VANTAGGIO!
Nasco spontanea la mia domanda: PERCHE' COSTRUIRE PROCESSORI STRAVELOCI, quando alla fin fine , è risaputo che non apportano nessuna miglioria effettiva ! è solo business!?!?!
Perche non pensiamo ad ottimizzare gli algoritmi ?!?! solo in questa maniera si ottengono veri risultati..
quicksort , heapsort e insertionsort.
Oggi , a distanza di 3 anni ho deciso cosi di ricompilare e provare quel software (di cui andavo parecchio orgoglioso xkè curato anche nei piu piccoli dettagli)
L'ho eseguito ed ho ottenuto dei risulatati.
Dopo di che ho pensato: proviamo a vedere che tempi ho ottenuto 3 anni fa con il mio vecchio pc.
Premetto: ora ho un AMD 64 bit a 4400+ , mentre prima avevo un AMD a 2200+
Inoltre il sistema operativo sul 2200 era Xp, ora è Vista.
ecco che vi posto i risultati (una porzione) fatti prima con il 2200+ e poi con il 4400+
AMD 2200+: e Xp
OS: Win32
ALGORITMO QUICKSORT
Tempo Minimo: 0.300 sec, Tempo Totale Esecuzione: 475.901 sec
Ripetizioni: 97524; Dimensione Input: 200; Campioni: 100;
Media Tempo singolo Ordinamento: 0,000051078543067 sec; Intervallo di Confidenza: +- 0,000000739924645 sec
================================================================
AMD 4400+ e Vista :
OS: Win32
ALGORITMO QUICKSORT
Tempo Minimo: 0.020 sec, Tempo Totale Esecuzione: 36.803 sec
Ripetizioni: 8240; Dimensione Input: 200; Campioni: 100;
Media Tempo singolo Ordinamento: 0.000037430733442 sec; Intervallo di Confidenza: +- 0.000001859233387 sec
================================================================
Come potete vedere , come ci si poteva aspettare, il tempo di esecuzione del 4400 + è LEGGERMENTE PIU VELOCE (di primo acchitto) (Piu veloce di 1,36 volte)
http://www.v4l3rio83.altervista.org/media.jpg
Questi valori sono abb. coerenti. Infatti se eseguo un algoritmo prima su un computer e poi su un spercomputer, l'incremento prestazionale non è evidentissimo.(come in questo caso)
Se io invece eseguo un algoritmo (che calcola la stessa cosa, nel nostro caso l'ordinamento di un vettore) con complessità migliorata (tipo passo da un algoritmo di complessità O(n^2) a O(n) nel caso peggiore ) allora il tempo di esecuzione avrà un miglioramento DECISAMENTE MAGGIORE CHE NON NEL PASSAGGIO DA COMPUTER A SUPERCOMPUTER ..
Quello che mi ha sbalordito è ben altro...
Il tempo minimo calcolabile è passato da 0.300 sec di Windows Xp a
0.020 di Vista . Questo significa che l'orologio interno di vista ha una precisione migliore..
Nonostante questo l'Intervallo di confidenza di Xp è nettamente inferiore rispetto a Vista!
http://www.v4l3rio83.altervista.org/intervallo.jpg
Questo cosa vuol dire ?
Significa che Vista è risultato molto piu impreciso come orologio nella computazione. Infatti l'intervallo di confidenza indica l'errore (medio)che può esser commesso sulla misurazione del tempo necessario per fare un singolo ordinamento (sia in positivo che in negavito).
TRADOTTO, se al valore Medio per ogni singolo ordinamento io aggiungo (quindi considero il caso peggiore) il suo intervallo di confidenza, ottengo un tempo molto simile a quello ottenuto con l'AMD 2200+ !! :eek:
http://www.v4l3rio83.altervista.org/media.jpg
http://www.v4l3rio83.altervista.org/intervallo.jpg
Questo significa che esser passati da un 2200 a un 4400 non ha portato nessun vero significativo VANTAGGIO!
Nasco spontanea la mia domanda: PERCHE' COSTRUIRE PROCESSORI STRAVELOCI, quando alla fin fine , è risaputo che non apportano nessuna miglioria effettiva ! è solo business!?!?!
Perche non pensiamo ad ottimizzare gli algoritmi ?!?! solo in questa maniera si ottengono veri risultati..