GameNow WP Theme

Dark Light
Heisenberg vs benchmarks
Review Score:
Forse non tutti conoscono il principio di indeterminazione di Heisenberg. E’ un concetto sviluppato nel 1927 da un fisico tedesco. Questo principio ci dice che è impossibile conoscere contemporaneamente la velocità e la posizione dell’elettrone con certezza. Questo principio è valido un po’ in generale e si scontra con i problemi della teoria della misurazione. Misurare la lunghezza di un tavolo è un’operazione abbastanza semplice, eppure il principio di indeterminazione ci dice che non possiamo farlo con estrema precisione. Questo può essere dovuto ad un errore di misura ma anche alla possibile alterazione del sistema stesso all’atto della misurazione. Forse con il tavolo questa seconda possibilità è un po’ difficile da dimostrare, ma si può sempre ipotizzare che la nostra interazione potrebbe riscaldare l’oggetto da misurare andando ad aumentarne impercettibilmente la lunghezza a causa della dilatazione termica e dell’agitazione delle molecole. Ma misurare il tavolo con estrema precisione non è certo il motivo per cui ci alziamo la mattina, quindi torniamo a parlare di qualcosa che sia più vicino al nostro mondo. Nel mondo dell’informatica la necessità di effettuare misurazioni è spesso molto sentita. E non si tratta ovviamente di misurare la lunghezza di una scheda video o il peso di una cpu, ma le loro performance o, peggio, le performance dell’intero sistema.
Solitamente l’attività di misurazione delle prestazioni del computer, o di una parte di esso, è svolta con l’ausilio di programmi detti benchmark. Questi programmi eseguono istruzioni specifiche che dovrebbero simulare l’esecuzione di un programma reale, o di un intero set di essi, e cercano di valutare la velocità con cui tali istruzioni vengono eseguite. Spesso l’unità di misura utilizzata dai benchmark è proprio il tempo e, in questo caso, a tempi minori corrispondono prestazioni maggiori. Ma quando il benchmark cerca di fare un consuntivo delle prestazioni del sistema, il tempo non è sufficiente per dare un’idea delle performance del sistema e quindi si ricorre ad un punteggio. Quanto sono affidabili questi punteggi? Quanto le effettive performance possono essere valutate con questo tipo di misurazioni? Heisenberg stesso ci viene incontro dicendoci che queste misurazioni saranno affette da un errore piuttosto rilevante, dovuto al fatto che il benchmark sta tentando di misurare diversi aspetti del sistema contemporaneamente e, quanto più tenterà di valutare diversi aspetti e di essere immune a eventi esterni a quelli che si vuole misurare direttamente, tanto più andrà ad influenzare la misura stessa fornendo una valutazione ben poco oggettiva di ciò che si sta misurando.
Il concetto è spesso di difficile comprensione ma mi è balzato all’occhio pochi giorni fa in modo lampante e  ve lo riproporrò in modo che possa illuminare anche voi. L’esempio è molto semplice e riguarda il task manager di una distribuzione linux installata su un Asus EeePc. Come è noto le risorse computazionali di questo computer sono molto esigue e, lanciando il task manager per vedere in che misura la cpu fosse impegnata, ho notato che il monitoraggio delle risorse impegnava lui stesso il 27% delle risorse della cpu.
L’esempio è banale ma esplicita la difficoltà di effettuare questo tipo di misurazioni, specialmente quando lo strumento di misurazione e l’oggetto da misurare coincidono. Alla luce di queste considerazioni risulterà chiaro che le misurazioni effettuate attraverso i benchmark sono tanto meno affidabili quanto più tentano di abbracciare un maggior numero di variabili e di dare un punteggio assoluto. Ovviamente in linea di massima rimangono utili per farci un’idea generale, ma è sempre opportuno, nel caso si vogliano fare dei confronti significativi, effettuare delle misurazioni specifiche direttamente sulla sezione di interesse. Un altro problema che affligge i benchmark è la ripetibilità delle misurazioni. Una caratteristica dei benchmark dovrebbe essere infatti l’indipendenza dei risultati dal contesto software e hardware. Se un benchmark si propone di misurare le prestazioni della cpu, i risultati non dovrebbero dipendere dal sistema operativo, dagli altri software in esecuzione o dal resto dell’hardware installato. Eppure tutto ciò è praticamente impossibile. Il risultato di un benchmark può essere alterato da mille altre cause non direttamente legate all’oggetto della misurazione. Tanto che chi considera i benchmark soltanto come un campo di battaglia sa bene quanti e quali sono i fattori che possono influire sul risultato. Conclusione? Meglio considerare i benchmark come un gioco che come uno strumento professionale di misurazione. Se non altro l’aleatorietà dei risultati può essere considerata come una variabile che aumenta il divertimento e valorizza le abilità dei giocatori!
Share and Enjoy:
  • Google Bookmarks
  • Facebook
  • FriendFeed
  • MySpace
  • Technorati
  • Wikio
  • Digg
  • del.icio.us
  • LinkedIn
  • Mixx
  • Reddit
  • Segnalo
  • email
No comments currently exist for this post.
Leave a Reply:




Ultime Rubriche Ultime News Sondaggio

Pensi che il famoso esemplare di iPhone 4G sia stato:

View Results

Loading ... Loading ...
Login / Logout