Digitando, digitando... (clicca per tornare alla pagina precedente...)

Articolo pubblicato su www.digiTANTO.it - per ulteriori informazioni clicca qui


Digitando, digitando... n. 22/2013 del 07.10.2013

B come Benchmark... bugiardi! :-)

di Andrea de Prisco

«C'è un famoso detto commercial-informatico che suona pressappoco così: i benchmark non dicono bugie ma i bugiardi usano i benchmark».

La frase che avete appena letto (sfido chiunque a giudicarla obsoleta...) la scrivevo, e qualcuno la leggeva!, su MC ben 22 anni fa e già a quei tempi la stessa era tutt'altro che una novità. Stiamo parlando del giurassico 1991, era in cui l'informatica personale si trovava nel pieno della sua attività: non si parlava più di "alfabetizzazione informatica" - che apparteneva, semmai, al decennio precedente - ma di computer per tutti e non solo per i soliti, tristissimi, addetti ai lavori.

L'articolo in questione trattava un confronto-scontro tra due processori (classe 386) pressoché identici, prodotti da due case ancor oggi concorrenti: AMD e Intel.

Il risultato dei test - e non poteva essere diversamente - decretò una sostanziale parità tra i due processori e l'ennesima conferma della quasi-inutilità dei benchmark, questione sulla quale MC s'è sempre battuta, usandoli sì internamente, ma pubblicandone i risultati sempre con il contagocce. Il tutto mentre altre riviste concorrenti non facevano altro che riempire pagine e pagine di grafici... facendo "fessi e contenti" lettori e produttori.

Vabbè, meglio non girare troppo il coltello nella (propria) ferita... :-)

 

Corsi e ricorsi storici

 

La questione, però, è tutt'altro che "storica". Riguarda un recente accadimento che ha coinvolto (per la seconda volta!) nientemeno che Samsung a seguito del lancio del suo recentissimo Note 3. Era già successo pochi mesi fa con il Galaxy S4: a quanto pare i due device sono in grado di "accorgersi" se è in esecuzione un programma di benchmark "liberando" (solo per l'occasione) tutta la potenza disponibile con il solo scopo di raggiungere un punteggio più elevato possibile.

Potenza che, sempre secondo i ben informati, non viene mai utilizzata per l'esecuzione dei programmi normali per garantire una maggiore autonomia di utilizzo. Come dire che su questi dispositivi il risultato rilevato dai benchmark, seppur misurato effettivamente in quegli instanti, ha poco o nulla a che vedere con le reali performance offerte.

E questo, scusate se insisto, avvalora la tesi, storica, iniziale... ovvero che chi vuole avvalorare le proprie bugie tecnologiche trova, volendo, anche il supporto tecnologico necessario.

Certamente peggiore è, poi, lo scenario relativo ad alcuni dispositivi "cinesi", come mi è capitato di verificare di persona poche settimane fa. Nel caso del finto melafonino visibile qui a lato (non è l'originale Apple, ma un clone cinese basato alla meno peggio su Android) in cui i risultati falsi non sono verificati nemmeno durante l'esecuzione dei test, ma semplicemente mostrati a video tramite l'indicazione di inesistenti caratteristiche tecniche rilevate. Anzi, nemmeno rilevate, ma solo lette all'interno del sistema dove vengono scritte falsate. Più tarocco di così?!?

 

MHz, MIPS e MEGA... FLOPS!

 

«È facile affermare: "il nostro extra-ultra-strafigo-computer lavora a 200 MIPS" un po' meno spiegare (lealmente) cosa si intende in quel momento per 200 MIPS. Intanto c'è da capire se quel valore è "di picco" oppure è un valor medio. Nel primo caso, capirete, ha ben poco significato: a cosa serve un processore che esegue "col turbo" le operazioni nulle (NOP) e poi si pianta alla prima moltiplicazione o divisione a più di 8 bit? E se invece si tratta di valore medio, come è stabilita questa media? Una media non pesata tra i tempi di esecuzione di tutte le istruzioni eseguibili da quel processore ha lo stesso valore del caso di prima: il dato è assolutamente non significativo. Una media pesata sulla frequenza delle istruzioni nei programmi, per così dire, generici già si avvicina maggiormente ad un valore equo di performance di quel sistema. L'importante è non barare sulle proprie carte: ogni processore, per quanto general purpose, ha sempre e comunque una determinata aspirazione intrinseca. Se il processore ha una struttura vettoriale sarà indicato per calcoli matriciali: inutile cercare di farlo correre su applicazioni non (altrettanto) vettoriali: rischieremmo di avere performance tipiche di processori dal costo decine se non centinaia di volte inferiori».

Per quanti milioni di metri cubi d'acqua siano passati nel frattempo sotto i ponti, il "ragionamento" espresso 22 anni fa continua ad essere valido.

C'eravamo da tempo liberati dei MHz come metro di paragone per valutare la velocità di un processore, e già da qualche anno si cominciava a parlare di Mips (milioni di istruzioni per secondo) e di Megaflops (milioni di operazioni in virgola mobile per secondo) per valutare le performance, salvo scoprire di lì a poco che anche questi due parametri rappresentavano valori non meno discutibili del primo.

A quei tempi, se non ricordo male, ancora non c'erano - o se c'erano erano rarissimi - i benchmark come li intendiamo, anzi li vediamo, oggi. Più che altro erano delle semplici raccolte di routine, scritte appositamente, eseguite una di seguito all'altra per testare le varie capacità di calcolo. Così, come nell'esempio qui sopra dell'epoca, si eseguiva un (non meglio specificato) algoritmo di sort numerico per valutare la CPU sotto il profilo integer e un paio di trasformate di Fourier per saggiare le capacità floating point della macchina sotto osservazione.

Che poi nessuno degli utenti utilizzasse principalmente il proprio PC per questi due specifici aspetti - riordinamento numerico e FFT - poco importa(va). L'importante era sputare al termine il numero magico che, agli occhi dei meno attenti, rappresentava un valore assoluto o relativo delle performance offerte.

Ovviamente... nulla di più falso!

Il passo successivo, ma non meno criticabile, fu quello di offrire benchmark basati sul "reale utilizzo" di un computer, e non su astratti calcoli matematici effettuati, per di più, in ottimizzato linguaggio macchina. Come nella ricetta antica di una pozione magica trovavamo un po' di wordprocessing, una manciata di foglio elettronico, una grattatina di data base, una abbondante spolverata di CAD bidimensionale, non senza quel tocco finale di rendering 3D che chiunque compie sul proprio PC prima di andare a letto la sera. Il risultato? L'ennesimo numeretto magico che aveva/ha la pretesa di valutare "nel complesso" il computer da testare. Con il quale, ovviamente, si dimostrava tutto e il contrario di tutto.

Il punto è sempre lo stesso: non si può ridurre a un semplice, unico, valore le performance complessive di un computer. Già solo per il fatto che ognuno usa il PC a modo proprio dovrebbe far riflettere al riguardo.

Eppure, passano gli anni, ma continuiamo a dire e a ripetere le stesse cose...

 

Bah!

 


Bonus track... :-)


MIPS, chi era costui?

(estratto da MC n. 68 del novembre 1987)

Se qualche anno fa andavano molto di moda termini come "software", "hardware", "floppy disk", oggi parole come MIPS, RISC, MMU sembrano aver preso un posto assai preponderante nel comune lessico dei computer-freak dell'ultima generazione (era "post-Amiga"). Copertina del numero di MCmicrocomputer contenente l'articoloOggi questi Signori non si accontentano più di 16, 32 o 64 bit, clock iper galattici da 16 MHz, coprocessori matematici, grafici o sonori... oggi un computer per essere "figo" (dicono loro) deve avere perlomeno un processore RISC da 150 MIPS (poveri illusi) o tutt'al più una decina di Transputer che lavorano in parallelo per darti la massima libidine computereccia (possibile e immaginabile...). A cosa servano poi i MIPS o cosa sia un processore RISC o un Transputer... nessuno lo sa.
MIPS, come detto, vuol dire milioni di operazioni al secondo. Se dunque un processore "va" a 3 mips vuol dire che compie la bellezza di 3 milioni di operazioni al secondo. Se prendiamo un altro processore che "corre" a 6 mips, la prima cosa che ci viene in mente è che vada il doppio "più veloce" del processore di prima. Sbagliato: poi vedremo perché.
Un discorso simile si potrebbe fare circa il clock: un processore a 4 MHz non è detto che sia più veloce di un altro processore a 1 MHz: un esempio classico è la coppia Z80-6502, il primo generalmente clock-ato a 4 MHz, il secondo ad 1... anni ed anni di micro informatica ad 8 bit non hanno affatto chiarito quale dei due fosse più veloce.

Il problema dov'è?

Supposto di conoscere la velocità in mips di due processori "diversi", cerchiamo di capire perché non possiamo confrontare tra loro queste due velocità e quindi stabilire quale dei due "va più veloce". Noi, come detto, conosciamo la velocità in mips, quindi sappiamo quante istruzioni in linguaggio macchina esegue in un secondo il primo processore e quante il secondo. Il problema è appunto questo: conosciamo quante istruzioni nel "suo" linguaggio macchina esegue in un secondo il primo processore e quante il secondo processore, sempre nel proprio linguaggio macchina. Se i due linguaggi macchina sono diversi, e questo è sempre vero per processori appartenenti a famiglie diverse, converrete con noi che non è possibile effettuare confronti basandosi solo sui mips. Infatti un processore a "pochi" mips, ma con istruzioni LM molto potenti potrebbe anche essere più veloce di un altro processore a "molti" mips ma con un LM assai scarso. La maggiore performance del primo, potrebbe essere valutata provando determinati programmi benchmark, saggiando, cronometro in mano, in quanto tempo vengono eseguiti sul primo e sul secondo processore. Ma anche coi benchmark occorre usare molta attenzione: se i due processori sono abbastanza simili, sicuramente capiterà che alcuni programmi saranno eseguiti più velocemente dal primo che dal secondo, per altri succederà esattamente il contrario.
Ovviamente tutto questo vale anche per programmi scritti in un qualsiasi linguaggio ad alto livello, compilati ovviamente con due compilatori distinti ognuno per il processore sul quale dovrà "girare" il codice eseguibile. Lo stesso programma, compilato per il processore col linguaggio macchina più potente avrà un codice eseguibile formato da meno istruzioni del corrispondente eseguibile per il processore, con più mips, ma con istruzioni più semplici.

A cosa servono i mips?

La prima risposta che saremmo tentati di dare è certamente: "vendere computer..." ma non è vero. O meglio, attualmente sono molto sfruttati per questo scopo, ma originariamente non era così. I mips servono solo ed esclusivamente per valutare miglioramenti di prestazioni tra processori della stessa famiglia, ovvero con medesimo linguaggio macchina. Infatti uno stesso processore può essere realizzato con diverse tecniche, oppure si può pensare di mettere in uno stesso computer più processori in modo che eseguano parallelamente più processi.

AdP '87

 

:-)

 


Vuoi commentare l'articolo? Scrivi il tuo messaggio e clicca su Invia. Ricordati di specificare il mittente... ovviamente se vuoi! :-)


      Inserisci il tuo commento:

 

Nome e Cognome:     Indirizzo e-mail:

Facoltativo: Autorizzo la pubblicazione del messaggio sul sito www.digiTANTO.it
NB: nel rispetto della privacy NON verrà riportato sul sito né il cognome né l'indirizzo e-mail del mittente!


 

Da: Aldo C.

 

Riviste concorrenti... riviste concorrenti...
Oh, chi ha detto PCProfessionale?

 


 

Da: Massimo M.

 

Grazie, un bel ripasso l'articolo di MC! Se i benchmark erano inaffidabili ai tempi (mono-task) del 386 figuriamoci adesso. Il problema è che se togliamo i benchmark che cosa ci rimane per valutare cosa comprare? Dai tempi di MC le recensioni in totale sono aumentate esponenzialmente ... ma le recensioni oneste? :-(
 


 

Da: Mario S.

 

emozionante come al solito :-)
Una curiosita': se dovessi scegliere un solo numero della rivista come rappresentante dell'essenza, della filosofia che muoveva i redattori del tempo e quindi anche te, quale sceglieresti ? (Uno solo! )
un caro saluto
Mario

Risposta: ... ti pare facile?!? :-)))


Articolo pubblicato su www.digiTANTO.it - per ulteriori informazioni clicca qui